Name
Simd::Avx512 - Emulate SIMD Avx512 instructions
Synopsis
Help needed please!
The instructions being emulated are illustrated at: https://www.officedaytime.com/simd512e/ The instructions being emulated are described at: https://hjlebbink.github.io/x86doc/
Example
Find the number of leading zeros in each of 8 quad words.
if (1) { my ($i, $od, $oq) = ( #Q0 1 2 3 4 5 6 7 8 #D0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 #W0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 #B0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 #b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678 '00000000101010100000001101010100101110101001111111010101011100110010100101010111110010101001010101100110100100001000110010101000011111010100111100101100000000000010001111001010111010111111111101001010100010111111001000010000100010100100111111100000000011010010010010000101101011110000000100011111111000000010000010101110111000000000011000111110100001000111111110001000000101011111100000000011101111100000100111111110000010011111111000000000111011101100000000001000111100011110010000011111111000001000010110010111', '00000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000110000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000011', '00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000', );
 is_deeply VPLZCNTD($i), $od;
 is_deeply VPLZCNTQ($i), $oq;
}
Description
Emulate SIMD Avx512 instructions
Version 20210129.
The following sections describe the methods in each functional area of this module. For an alphabetic listing of all methods by name see Index.
Instructions
Emulation of Avx512 instructions
PSLLDQ($xmm1, $imm8)
Packed Shift Left Logical DoubleQword
   Parameter  Description
1  $xmm1      Bytes
2  $imm8      Length of shift in bytes
Example:
  is_deeply PSLLDQ(                                                             # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
VPSLLDQ($xmm1, $imm8)
Packed Shift Left Logical DoubleQword
   Parameter  Description
1  $xmm1      Bytes
2  $imm8      Length of shift in bytes
Example:
  is_deeply VPSLLDQ(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
  is_deeply VPSLLDQ(                                                            # 2*128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
.'00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
  is_deeply VPSLLDQ(                                                            # 4*128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
.'00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
.'00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
.'00000000110000000000000001000000000010000000000001100000000000000000001111110000000000000000000000000000000011110000000000000000'
PSRLDQ($xmm1, $imm8)
Packed Shift Right Logical DoubleQword
   Parameter  Description
1  $xmm1      Bytes
2  $imm8      Length of shift
Example:
  is_deeply PSRLDQ(                                                             # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
VPSRLDQ($xmm1, $imm8)
Packed Shift Right Logical DoubleQword
   Parameter  Description
1  $xmm1      Bytes
2  $imm8      Length of shift
Example:
  is_deeply VPSRLDQ(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
  is_deeply VPSRLDQ(                                                            # 2*128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
.'00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
  is_deeply VPSRLDQ(                                                            # 4*128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
.'11100001000010000000000011000000000000000100000000001000000000000110000000000000000000111111000000000000000000000000000000001111'
,2),
 '00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
.'00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
.'00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
.'00000000000000001110000100001000000000001100000000000000010000000000100000000000011000000000000000000011111100000000000000000000'
PCMP
Packed CoMPare
PCMPEQ
Packed CoMPare EQual
PCMPEQB($xmm1, $xmm2)
Packed CoMPare EQual Byte
   Parameter  Description
1  $xmm1      Bytes
2  $xmm2      Bytes
Example:
  is_deeply PCMPEQB(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '11111111000000001111111111111111111111110000000000000000111111111111111111111111111111111111111111111111111111111111111100000000'
PCMPEQW($xmm1, $xmm2)
Packed CoMPare EQual Word
   Parameter  Description
1  $xmm1      Words
2  $xmm2      Words
Example:
  is_deeply PCMPEQW(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '00000000000000001111111111111111000000000000000000000000000000001111111111111111111111111111111111111111111111110000000000000000'
PCMPEQD($xmm1, $xmm2)
Packed CoMPare EQual DWord
   Parameter  Description
1  $xmm1      DWords
2  $xmm2      DWords
Example:
  is_deeply PCMPEQD(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '00000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111100000000000000000000000000000000'
PCMPEQQ($xmm1, $xmm2)
Packed CoMPare EQual QWord
   Parameter  Description
1  $xmm1      QWords
2  $xmm2      QWords
Example:
  is_deeply PCMPEQQ(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000011000000000011000000000000011000000000110000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000011000000000011000000000000011000000000110000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '11111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000'
PCMPGT
Packed CoMPare Greater Than
PCMPGTB($xmm1, $xmm2)
Packed CoMPare Greater Than Byte
   Parameter  Description
1  $xmm1      Bytes
2  $xmm2      Bytes
Example:
  is_deeply PCMPGTB(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000010000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000001000000100000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '00000000111111110000000000000000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000011111111'
PCMPGTW($xmm1, $xmm2)
Packed CoMPare Greater Than Word
   Parameter  Description
1  $xmm1      Words
2  $xmm2      Words
Example:
  is_deeply PCMPGTW(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000000111110000000000000000000000000000000011010'
),
 '11111111111111110000000000000000111111111111111100000000000000000000000000000000111111111111111100000000000000001111111111111111'
PCMPGTD($xmm1, $xmm2)
Packed CoMPare Greater Than DWord
   Parameter  Description
1  $xmm1      DWords
2  $xmm2      DWords
Example:
  is_deeply PCMPGTD(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '11111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000011111111111111111111111111111111'
PCMPGTQ($xmm1, $xmm2)
Packed CoMPare Greater Than QWord
   Parameter  Description
1  $xmm1      QWords
2  $xmm2      QWords
Example:
  is_deeply PCMPGTQ(                                                            # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000011000000000011000000000000011000000000110000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000011000000000011000000000000011000000000110000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '00000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111'
VPCMP
Packed CoMPare
VPCMPEQ
Packed CoMPare EQual
VPCMPEQB($k2, $xmm1, $xmm2)
Packed CoMPare EQual Byte with optional masking
   Parameter  Description
1  $k2        Optional input mask
2  $xmm1      Bytes
3  $xmm2      Bytes
Example:
  is_deeply VPCMPEQB(                                                           # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '11111111000000001111111111111111111111110000000000000000111111111111111111111111111111111111111111111111111111111111111100000000'
  is_deeply VPCMPEQB(                                                           # 512  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
.'11100001000010000000000011000000000000011000000000010000000000001100000000000000000001111110000000000000000000000000000000011110'
,'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
.'11100001000001000000000011000000000000010000000000100000000000001100000000000000000001111110000000000000000000000000000000011010'
),
 '11111111000000001111111111111111111111110000000000000000111111111111111111111111111111111111111111111111111111111111111100000000'
.'11111111000000001111111111111111111111110000000000000000111111111111111111111111111111111111111111111111111111111111111100000000'
  is_deeply VPCMPEQB(                                                           # 128  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                                                                                                                                                 '00000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                                                                                                                                                 '10000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
),
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1';
  is_deeply VPCMPEQB(                                                           # 256  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                 '0000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                 '1000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
),
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1';
  is_deeply VPCMPEQB(                                                           # 512  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '00000000110000001000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
),
 '1'.    '1'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1';
VPCMPEQW($k2, $xmm1, $xmm2)
Packed CoMPare EQual Byte with optional masking
   Parameter  Description
1  $k2        Optional input mask
2  $xmm1      Words
3  $xmm2      Words
VPCMPEQD($k2, $xmm1, $xmm2)
Packed CoMPare EQual Byte with optional masking
   Parameter  Description
1  $k2        Optional input mask
2  $xmm1      Dwords
3  $xmm2      Dwords
VPCMPEQQ($k2, $xmm1, $xmm2)
Packed CoMPare EQual Byte with optional masking
   Parameter  Description
1  $k2        Optional input mask
2  $xmm1      Qwords
3  $xmm2      Qwords
VPCMP
Packed CoMPare
VPCMPB($k2, $xmm1, $xmm2, $op)
Packed CoMPare Byte
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Bytes
3  $xmm2      Bytes
4  $op        Test code
Example:
  my ($mi, $mo, $o1, $o2) = (                                                   # 128
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                                                                                                                                                 '00000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                                                                                                                                                 '10000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPB($mi, $o1, $o2, 0), $mo;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 4), zBytes(6).flipBitsUnderMask substr($mo, 48), substr($mi, 48);  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $mo, $o1, $o2) = (                                                   # 256
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                 '0000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                 '1000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPB($mi, $o1, $o2, 0), $mo;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 4), zBytes(4).flipBitsUnderMask substr($mo, 32), substr($mi, 32);  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '1'.    '1'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0',
 '00000000110000001000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPB($mi, $o1, $o2, 0),                     $meq;                 # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 1),                     $mlt;                 # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;            # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;            # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;            # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPB($mi, $o1, $o2, 6),                     $mgt;                 # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPCMPW($k2, $xmm1, $xmm2, $op)
Packed CoMPare Word
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Words
3  $xmm2      Words
4  $op        Test code
VPCMPD($k2, $xmm1, $xmm2, $op)
Packed CoMPare Dword
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Dwords
3  $xmm2      Dwords
4  $op        Test code
VPCMPQ($k2, $xmm1, $xmm2, $op)
Packed CoMPare Qword
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Qwords
3  $xmm2      Qwords
4  $op        Test code
VPCMPU
Packed CoMPare Unsigned
VPCMPUB($k2, $xmm1, $xmm2, $op)
Packed CoMPare Unsigned Byte
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Bytes
3  $xmm2      Bytes
4  $op        Test code
Example:
  my ($mi, $mo, $o1, $o2) = (                                                   # 128
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                                                                                                                                                 '00000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                                                                                                                                                 '10000001000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPUB($mi, $o1, $o2, 0), $mo;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 4), zBytes(6).flipBitsUnderMask substr($mo, 48), substr($mi, 48);  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $mo, $o1, $o2) = (                                                   # 256
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
                                                                                                                                                                                                                                                                 '0000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
                                                                                                                                                                                                                                                                 '1000000100001000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPUB($mi, $o1, $o2, 0), $mo;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 4), zBytes(4).flipBitsUnderMask substr($mo, 32), substr($mi, 32);  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.    '1'.    '1'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '1'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '1'.    '1'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
 '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0',
 '0'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0',
 '00000000110000001000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPCMPUB($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUB($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPCMPUW($k2, $xmm1, $xmm2, $op)
Packed CoMPare Unsigned Word
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Words
3  $xmm2      Words
4  $op        Test code
Example:
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.            '1'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1',
 '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1',
 '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0',
 '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000000000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(4).$$i;
   }
  is_deeply VPCMPUW($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.            '1'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1',
 '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1',
 '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0',
 '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '1'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0'.            '0',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000000000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(4).$$i;
   }
  is_deeply VPCMPUW($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUW($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPCMPUD($k2, $xmm1, $xmm2, $op)
Packed CoMPare Unsigned Dword
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Dwords
3  $xmm2      Dwords
4  $op        Test code
Example:
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.                            '1'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1',
 '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0',
 '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0',
 '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000',
 '00000000110000000000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(6).$$i;
   }
  is_deeply VPCMPUD($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.                            '1'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1',
 '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0',
 '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0',
 '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '0'.                            '1',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000',
 '00000000110000000000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(6).$$i;
   }
  is_deeply VPCMPUD($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUD($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPCMPUQ($k2, $xmm1, $xmm2, $op)
Packed CoMPare Unsigned Qword
   Parameter  Description
1  $k2        Input mask
2  $xmm1      Qwords
3  $xmm2      Qwords
4  $op        Test code
Example:
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.                                                            '1'.                                                            '1'.                                                            '1'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '1',
 '0'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0',
 '1'.                                                            '0'.                                                            '1'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0',
 '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '1',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000001000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(7).$$i;
   }
  is_deeply VPCMPUQ($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  my ($mi, $meq, $mlt, $mgt, $o1, $o2) = (                                      # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '1'.                                                            '1'.                                                            '1'.                                                            '1'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '1',
 '0'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0',
 '1'.                                                            '0'.                                                            '1'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '0',
 '0'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '1',
 '00000000110000001000000001100000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000110000000110000011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000',
 '00000000110000001000000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000011000001100000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000',
);
  for my $i(\($mi, $meq, $mlt, $mgt))
   {$$i = zBytes(7).$$i;
   }
  is_deeply VPCMPUQ($mi, $o1, $o2, 0),                     $meq;                # eq  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 1),                     $mlt;                # lt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 2),   flipBitsUnderMask $mgt, $mi;           # le  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 4),   flipBitsUnderMask $meq, $mi;           # ne  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 5),   flipBitsUnderMask $mlt, $mi;           # ge  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPCMPUQ($mi, $o1, $o2, 6),                     $mgt;                # gt  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPTEST
Packed TEST
VPTESTM
Packed TEST MASK
VPTESTMB($xmm1, $xmm2)
Packed TEST Mask Byte
   Parameter  Description
1  $xmm1      Bytes
2  $xmm2      Bytes
Example:
  my ($o1, $o2, $k1) = (                                                        # 128
#Q0                                                               1                                                               2
#D0                               1                               2                               3                               4
#W0               1               2               3               4               5               6               7               0
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670
 '00000001000010000000000011000000000100000000001000010010000000000001100000000000000010100000101000011000000000111111111100010000',
 '10000001000010000000100011001000000001000001000000001100000001000000000000010010000101000001010000000110000111000000000000010000',
 '1'.    '1'.    '0'.    '1'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '0'.    '1',
);
  is_deeply VPTESTMB($o1, $o2), zBytes(6).$k1;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPTESTMW($xmm1, $xmm2)
Packed TEST Mask Word
   Parameter  Description
1  $xmm1      Words
2  $xmm2      Words
Example:
  my ($o1, $o2, $k1) = (                                                        # 256
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '0000110100001000000000001100000000010000000000000001001000000000000000000000000000000000110000000000000000000000000011000001000100000001000010000000000011000000000100000000000000010010000000000000010000000000000000000000000000000000000000000000000000010000',
 '0000000101001000000000001100000000010000110000000001001000000000000000000000000000000011000000000000000110000000000000010001000100000001100010000000000011000000000100000010000000010010001000000000000000010000000000000100000000000001100000000000000000010000',
 '1'.            '1'.            '1'.            '1'.            '0'.            '0'.            '0'.            '1'.            '1'.            '1'.            '1'.            '1'.            '0'.            '0'.            '0'.            '1',
);
  is_deeply VPTESTMW($o1, $o2), zBytes(6).$k1;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPTESTMD($xmm1, $xmm2)
Packed TEST Mask Dword
   Parameter  Description
1  $xmm1      Dwords
2  $xmm2      Dwords
Example:
  my ($o1, $o2, $k1) = (                                                        # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '00011001000010100100000011000000000100000101000000010010000000000000000000000000000000000000000000000001001000100000000000010000000000010000100000000000110000000001000000000000000100000000000000000100000000000000000000000000000000000111110000000000000100000000000100001000000000001110000000010000000000000001111000000000000000001110000000000000000000000001001010101010000000000001000000000001000010000000000011000000000100000100000000010010001000000000010000000000000000000000000000000000000000000000000000010000',
 '00010101000010101000000011000000000100000010100000010010000000000000000000000000000000000000000000000001010010000000000000010000000000010000100000000000110000000001000000000000000100100000010000000001000000000000000000000000000000111100001111100000000100000000000000000000000000000100010000000000000000000000000011000000000000001001000000000000000000000001001001010001010100000001000000000000000000000000000000000000000000100000000000000000000010000000000000000000000000000000000000000000000000000000000000010000',
 '1'.                            '1'.                            '0'.                            '1'.                            '1'.                            '1'.                            '0'.                            '1'.                            '1'.                            '0'.                            '1'.                            '1'.                            '0'.                            '0'.                            '0'.                            '1',
);
  is_deeply VPTESTMD($o1, $o2), zBytes(6).$k1;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPTESTMQ($xmm1, $xmm2)
Packed TEST Mask Quad
   Parameter  Description
1  $xmm1      Quads
2  $xmm2      Quads
Example:
  my ($o1, $o2, $k1) = (                                                        # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '00011001000010100100000011000000000100000101000000010010000000000000000000000000000000000000000000000001001000100000000000010000000000010000100000000000110000000001000000000000000100000000000000000100000000000000000000000000000000000111110000000000000100000000000100001000000000001110000000010000000000000001001000000000000000000110000000000000000000000000000010101010000000000001000000000001000010000000000011000000000100000100000000010010001000000000010000000001111111111111111111111111111111111111111100000000',
 '00010101000010101000000011000000000100000010100000010010000000000000000000000000000000000000000000000000000000000000000000100000000000001000010000000000000011000000000000000011000000100000010000000001000000000000000000000000000000111000001111100000000000000000000000000000000000000100010000000000000000000001001000000000000000001001000000000000000000000001001001010001010100000010000000000000001100000000000100100000001000100000000000100100000010000000010000000000000000000000000000000000000000000000000000010000',
 '1'.                                                            '0'.                                                            '0'.                                                            '0'.                                                            '1'.                                                            '0'.                                                            '0'.                                                            '1',
);
  is_deeply VPTESTMQ($o1, $o2), zBytes(7).$k1;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPBROADCAST
VPBROADCASTB - Packed BROADCAST Byte
VPBROADCASTB($size, $b)
Packed TEST Mask Byte
   Parameter  Description
1  $size      Size of target in bits
2  $b         Byte
Example:
my $b = '00010011' x 64;
is_deeply VPBROADCASTB(512, '00010011'),                                                         $b;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
is_deeply VPBROADCASTW(512, '0001001100010011'),                                                 $b;
is_deeply VPBROADCASTD(512, '00010011000100110001001100010011'),                                 $b;
is_deeply VPBROADCASTQ(512, '0001001100010011000100110001001100010011000100110001001100010011'), $b;
VPBROADCASTW($size, $w)
Packed TEST Mask Word
   Parameter  Description
1  $size      Size of target in bits
2  $w         Word
VPBROADCASTD($size, $d)
Packed TEST Mask Dword
   Parameter  Description
1  $size      Size of target in bits
2  $d         Dword
VPBROADCASTQ($size, $q)
Packed TEST Mask Quad
   Parameter  Description
1  $size      Size of target in bits
2  $q         Byte
VPINSR
Packed INSeRt
VPINSRB($target, $byte, $pos)
Packed INSeRt Byte
   Parameter  Description
1  $target    Target element
2  $byte      Byte
3  $pos       Position to insert byte expressed as number of bytes from lowest order byte numbered 0
Example:
  my ($i, $ob, $ow, $od, $oq) = (                                               # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000000100000001000000010000000100001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000111111110000000011111111000000000001000000010000000100000001000000010000000100000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
);
  is_deeply VPINSRB($i, '00010000',                                                         60), $ob;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPINSRW($i, '0001000000010000',                                                 30), $ow;
  is_deeply VPINSRD($i, '00010000000100000001000000010000',                                 14), $od;
  is_deeply VPINSRQ($i, '0001000000010000000100000001000000010000000100000001000000010000',  6), $oq;
VPINSRW($target, $word, $pos)
Packed INSeRt Word
   Parameter  Description
1  $target    Target element
2  $word      Word
3  $pos       Position to insert byte expressed as number of words from lowest order word numbered 0
Example:
  my ($i, $ob, $ow, $od, $oq) = (                                               # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000000100000001000000010000000100001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000111111110000000011111111000000000001000000010000000100000001000000010000000100000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
);
  is_deeply VPINSRB($i, '00010000',                                                         60), $ob;
  is_deeply VPINSRW($i, '0001000000010000',                                                 30), $ow;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPINSRD($i, '00010000000100000001000000010000',                                 14), $od;
  is_deeply VPINSRQ($i, '0001000000010000000100000001000000010000000100000001000000010000',  6), $oq;
VPINSRD($target, $dword, $pos)
Packed INSeRt Dword
   Parameter  Description
1  $target    Target element
2  $dword     Dword
3  $pos       Position to insert byte expressed as number of dwords from lowest order dword numbered 0
Example:
  my ($i, $ob, $ow, $od, $oq) = (                                               # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000000100000001000000010000000100001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000111111110000000011111111000000000001000000010000000100000001000000010000000100000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
);
  is_deeply VPINSRB($i, '00010000',                                                         60), $ob;
  is_deeply VPINSRW($i, '0001000000010000',                                                 30), $ow;
  is_deeply VPINSRD($i, '00010000000100000001000000010000',                                 14), $od;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPINSRQ($i, '0001000000010000000100000001000000010000000100000001000000010000',  6), $oq;
VPINSRQ($target, $qword, $pos)
Packed INSeRt Quad
   Parameter  Description
1  $target    Target element
2  $qword     Qword
3  $pos       Position to insert byte expressed as number of dwords from lowest order qword numbered 0
Example:
  my ($i, $ob, $ow, $od, $oq) = (                                               # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '11111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000000100000001000000010000000100001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
 '11111111000000001111111100000000111111110000000011111111000000000001000000010000000100000001000000010000000100000001000000010000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000',
);
  is_deeply VPINSRB($i, '00010000',                                                         60), $ob;
  is_deeply VPINSRW($i, '0001000000010000',                                                 30), $ow;
  is_deeply VPINSRD($i, '00010000000100000001000000010000',                                 14), $od;
  is_deeply VPINSRQ($i, '0001000000010000000100000001000000010000000100000001000000010000',  6), $oq;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPLZCNT
Packed Leading Zero CouNT
VPLZCNTD($target)
Packed Leading Zero CouNT Dword
   Parameter  Description
1  $target    Target element
Example:
  my ($i, $od, $oq) = (                                                         # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '00000000101010100000001101010100101110101001111111010101011100110010100101010111110010101001010101100110100100001000110010101000011111010100111100101100000000000010001111001010111010111111111101001010100010111111001000010000100010100100111111100000000011010010010010000101101011110000000100011111111000000010000010101110111000000000011000111110100001000111111110001000000101011111100000000011101111100000100111111110000010011111111000000000111011101100000000001000111100011110010000011111111000001000010110010111',
 '00000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000110000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000011',
 '00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPLZCNTD($i), $od;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPLZCNTQ($i), $oq;
VPLZCNTQ($target)
Packed Leading Zero CouNT Qword
   Parameter  Description
1  $target    Target element
Example:
  my ($i, $od, $oq) = (                                                         # 512
#Q0                                                               1                                                               2                                                               3                                                               4                                                               5                                                               6                                                               7                                                               8
#D0                               1                               2                               3                               4                               5                               6                               7                               0                               1                               2                               3                               4                               5                               6                               7                               8
#W0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               0               1               2               3               4               5               6               7               8
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       8
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345678
 '00000000101010100000001101010100101110101001111111010101011100110010100101010111110010101001010101100110100100001000110010101000011111010100111100101100000000000010001111001010111010111111111101001010100010111111001000010000100010100100111111100000000011010010010010000101101011110000000100011111111000000010000010101110111000000000011000111110100001000111111110001000000101011111100000000011101111100000100111111110000010011111111000000000111011101100000000001000111100011110010000011111111000001000010110010111',
 '00000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000110000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000011',
 '00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000',
);
  is_deeply VPLZCNTD($i), $od;
  is_deeply VPLZCNTQ($i), $oq;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
Compress and Expand
Compress or expand
VPCOMPRESS
Packed COMPRESS
VPCOMPRESSD($xmm1, $k2, $z, $xmm2)
Packed COMPRESS Dword
   Parameter  Description
1  $xmm1      Compression target
2  $k2        Compression mask
3  $z         Clear upper elements
4  $xmm2      Source to compress
Example:
  my ($m, $i, $o, $p) = (                                                       # 128
#Q0                                                               1                                                               2
#D0                               1                               2                               3                               4
#W0               1               2               3               4               5               6               7               0
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670
 '1'.                            '0'.                            '1'.                            '0',
 '11000000000000000000000000000000111111111111111111111111111111101000000000000000000000000000000011111111111111111111111111111111',
 '00000000000000000000000000000000111111111111111000000000000000001100000000000000000000000000000010000000000000000000000000000000',
 '11000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000',
);
  $m = zBytes(7).'0000'.$m;                                                     # Zero pad mask
  is_deeply VPCOMPRESSD($o, $m, 0, $i), $o;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPEXPANDD  ($p, $m, 0, $o), $p;
VPCOMPRESSQ($xmm1, $k2, $z, $xmm2)
Packed COMPRESS Qword
   Parameter  Description
1  $xmm1      Compression target
2  $k2        Compression mask
3  $z         Clear upper elements
4  $xmm2      Source to compress
Example:
  my ($m, $i, $o, $p) = (                                                       # 128
#Q0                                                               1                                                               2
#D0                               1                               2                               3                               4
#W0               1               2               3               4               5               6               7               0
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670
 '1'.                                                            '0',
 '10000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111',
 '00000000000000000000000000000000111111111111111000000000000000001000000000000000000000000000000000000000000000000000000000000000',
 '10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  $m = zBytes(7).'000000'.$m;                                                   # Zero pad mask
  is_deeply VPCOMPRESSQ($o, $m, 0, $i), $o;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
  is_deeply VPEXPANDQ  ($p, $m, 0, $o), $p;
VPEXPAND
Packed EXPAND
VPEXPANDD($xmm1, $k2, $z, $xmm2)
Packed EXPAND Dword
   Parameter  Description
1  $xmm1      Compression target
2  $k2        Expansion mask
3  $z         Clear upper elements
4  $xmm2      Source to expand
Example:
  my ($m, $i, $o, $p) = (                                                       # 128
#Q0                                                               1                                                               2
#D0                               1                               2                               3                               4
#W0               1               2               3               4               5               6               7               0
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670
 '1'.                            '0'.                            '1'.                            '0',
 '11000000000000000000000000000000111111111111111111111111111111101000000000000000000000000000000011111111111111111111111111111111',
 '00000000000000000000000000000000111111111111111000000000000000001100000000000000000000000000000010000000000000000000000000000000',
 '11000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000',
);
  $m = zBytes(7).'0000'.$m;                                                     # Zero pad mask
  is_deeply VPCOMPRESSD($o, $m, 0, $i), $o;
  is_deeply VPEXPANDD  ($p, $m, 0, $o), $p;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
VPEXPANDQ($xmm1, $k2, $z, $xmm2)
Packed EXPAND Qword
   Parameter  Description
1  $xmm1      Compression target
2  $k2        Expansion mask
3  $z         Clear upper elements
4  $xmm2      Source to expand
Example:
  my ($m, $i, $o, $p) = (                                                       # 128
#Q0                                                               1                                                               2
#D0                               1                               2                               3                               4
#W0               1               2               3               4               5               6               7               0
#B0       1       2       3       4       5       6       7       0       1       2       3       4       5       6       7       0
#b012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670
 '1'.                                                            '0',
 '10000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111',
 '00000000000000000000000000000000111111111111111000000000000000001000000000000000000000000000000000000000000000000000000000000000',
 '10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
);
  $m = zBytes(7).'000000'.$m;                                                   # Zero pad mask
  is_deeply VPCOMPRESSQ($o, $m, 0, $i), $o;
  is_deeply VPEXPANDQ  ($p, $m, 0, $o), $p;  # 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
Private Methods
pcmpeq($size, $xmm1, $xmm2)
Packed CoMPare EQual
   Parameter  Description
1  $size      Size in bits
2  $xmm1      Element
3  $xmm2      Element
pcmpgt($size, $xmm1, $xmm2)
Packed CoMPare Greater Than
   Parameter  Description
1  $size      Size in bits
2  $xmm1      Element
3  $xmm2      Element
vpcmpeq($size, $k2, $xmm1, $xmm2)
Packed CoMPare EQual Byte|word|double|quad with optional masking
   Parameter  Description
1  $size      Size in bits: 8|16|32|64 of each element
2  $k2        Optional input mask
3  $xmm1      Bytes
4  $xmm2      Bytes
vpcmp($size, $k2, $xmm1, $xmm2, $op)
Packed CoMPare
   Parameter  Description
1  $size      Size of element in bits
2  $k2        Input mask
3  $xmm1      Bytes
4  $xmm2      Bytes
5  $op        Test code
vpcmpu($size, $k2, $xmm1, $xmm2, $op)
Packed CoMPare Unsigned
   Parameter  Description
1  $size      Size of element in bits
2  $k2        Input mask
3  $xmm1      Bytes
4  $xmm2      Bytes
5  $op        Test code
andAndTest($a, $b)
And two bit strings of the same length and return 0 if the result is 0 else 1
   Parameter  Description
1  $a         Element
2  $b         Element
vptest($size, $xmm1, $xmm2)
Packed TEST
   Parameter  Description
1  $size      Size of element in bits
2  $xmm1      Element
3  $xmm2      Element
vpcompress($size, $xmm1, $k2, $z, $xmm2)
Packed COMPRESS
   Parameter  Description
1  $size      Size of each element in bits
2  $xmm1      Compression target
3  $k2        Compression mask
4  $z         Clear upper elements
5  $xmm2      Source to compress
vpexpand($size, $xmm1, $k2, $z, $xmm2)
Packed EXPAND
   Parameter  Description
1  $size      Size of each element in bits
2  $xmm1      Compression target
3  $k2        Expansion mask
4  $z         Clear upper elements
5  $xmm2      Source to expand
Index
1 andAndTest - And two bit strings of the same length and return 0 if the result is 0 else 1
2 pcmpeq - Packed CoMPare EQual
3 PCMPEQB - Packed CoMPare EQual Byte
4 PCMPEQD - Packed CoMPare EQual DWord
5 PCMPEQQ - Packed CoMPare EQual QWord
6 PCMPEQW - Packed CoMPare EQual Word
7 pcmpgt - Packed CoMPare Greater Than
8 PCMPGTB - Packed CoMPare Greater Than Byte
9 PCMPGTD - Packed CoMPare Greater Than DWord
10 PCMPGTQ - Packed CoMPare Greater Than QWord
11 PCMPGTW - Packed CoMPare Greater Than Word
12 PSLLDQ - Packed Shift Left Logical DoubleQword
13 PSRLDQ - Packed Shift Right Logical DoubleQword
14 VPBROADCASTB - Packed TEST Mask Byte
15 VPBROADCASTD - Packed TEST Mask Dword
16 VPBROADCASTQ - Packed TEST Mask Quad
17 VPBROADCASTW - Packed TEST Mask Word
18 vpcmp - Packed CoMPare
19 VPCMPB - Packed CoMPare Byte
20 VPCMPD - Packed CoMPare Dword
21 vpcmpeq - Packed CoMPare EQual Byte|word|double|quad with optional masking
22 VPCMPEQB - Packed CoMPare EQual Byte with optional masking
23 VPCMPEQD - Packed CoMPare EQual Byte with optional masking
24 VPCMPEQQ - Packed CoMPare EQual Byte with optional masking
25 VPCMPEQW - Packed CoMPare EQual Byte with optional masking
26 VPCMPQ - Packed CoMPare Qword
27 vpcmpu - Packed CoMPare Unsigned
28 VPCMPUB - Packed CoMPare Unsigned Byte
29 VPCMPUD - Packed CoMPare Unsigned Dword
30 VPCMPUQ - Packed CoMPare Unsigned Qword
31 VPCMPUW - Packed CoMPare Unsigned Word
32 VPCMPW - Packed CoMPare Word
33 vpcompress - Packed COMPRESS
34 VPCOMPRESSD - Packed COMPRESS Dword
35 VPCOMPRESSQ - Packed COMPRESS Qword
36 vpexpand - Packed EXPAND
37 VPEXPANDD - Packed EXPAND Dword
38 VPEXPANDQ - Packed EXPAND Qword
39 VPINSRB - Packed INSeRt Byte
40 VPINSRD - Packed INSeRt Dword
41 VPINSRQ - Packed INSeRt Quad
42 VPINSRW - Packed INSeRt Word
43 VPLZCNTD - Packed Leading Zero CouNT Dword
44 VPLZCNTQ - Packed Leading Zero CouNT Qword
45 VPSLLDQ - Packed Shift Left Logical DoubleQword
46 VPSRLDQ - Packed Shift Right Logical DoubleQword
47 vptest - Packed TEST
48 VPTESTMB - Packed TEST Mask Byte
49 VPTESTMD - Packed TEST Mask Dword
50 VPTESTMQ - Packed TEST Mask Quad
51 VPTESTMW - Packed TEST Mask Word
Installation
This module is written in 100% Pure Perl and, thus, it is easy to read, comprehend, use, modify and install via cpan:
sudo cpan install Simd::Avx512
Author
Copyright
Copyright (c) 2016-2021 Philip R Brenan.
This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.