1# Check 32bit AVX512{VBMI,VL} instructions 2 3 .allow_index_reg 4 .text 5_start: 6 vpermb %xmm4, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 7 vpermb %xmm4, %xmm5, %xmm6{%k7}{z} # AVX512{VBMI,VL} 8 vpermb (%ecx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 9 vpermb -123456(%esp,%esi,8), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 10 vpermb 2032(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 11 vpermb 2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 12 vpermb -2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 13 vpermb -2064(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 14 vpermb %ymm4, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 15 vpermb %ymm4, %ymm5, %ymm6{%k7}{z} # AVX512{VBMI,VL} 16 vpermb (%ecx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 17 vpermb -123456(%esp,%esi,8), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 18 vpermb 4064(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 19 vpermb 4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 20 vpermb -4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 21 vpermb -4128(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 22 vpermi2b %xmm4, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 23 vpermi2b %xmm4, %xmm5, %xmm6{%k7}{z} # AVX512{VBMI,VL} 24 vpermi2b (%ecx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 25 vpermi2b -123456(%esp,%esi,8), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 26 vpermi2b 2032(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 27 vpermi2b 2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 28 vpermi2b -2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 29 vpermi2b -2064(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 30 vpermi2b %ymm4, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 31 vpermi2b %ymm4, %ymm5, %ymm6{%k7}{z} # AVX512{VBMI,VL} 32 vpermi2b (%ecx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 33 vpermi2b -123456(%esp,%esi,8), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 34 vpermi2b 4064(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 35 vpermi2b 4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 36 vpermi2b -4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 37 vpermi2b -4128(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 38 vpermt2b %xmm4, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 39 vpermt2b %xmm4, %xmm5, %xmm6{%k7}{z} # AVX512{VBMI,VL} 40 vpermt2b (%ecx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 41 vpermt2b -123456(%esp,%esi,8), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 42 vpermt2b 2032(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 43 vpermt2b 2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 44 vpermt2b -2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 45 vpermt2b -2064(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 46 vpermt2b %ymm4, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 47 vpermt2b %ymm4, %ymm5, %ymm6{%k7}{z} # AVX512{VBMI,VL} 48 vpermt2b (%ecx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 49 vpermt2b -123456(%esp,%esi,8), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 50 vpermt2b 4064(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 51 vpermt2b 4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 52 vpermt2b -4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 53 vpermt2b -4128(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 54 vpmultishiftqb %xmm4, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 55 vpmultishiftqb %xmm4, %xmm5, %xmm6{%k7}{z} # AVX512{VBMI,VL} 56 vpmultishiftqb (%ecx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 57 vpmultishiftqb -123456(%esp,%esi,8), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 58 vpmultishiftqb (%eax){1to2}, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 59 vpmultishiftqb 2032(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 60 vpmultishiftqb 2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 61 vpmultishiftqb -2048(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 62 vpmultishiftqb -2064(%edx), %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 63 vpmultishiftqb 1016(%edx){1to2}, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 64 vpmultishiftqb 1024(%edx){1to2}, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 65 vpmultishiftqb -1024(%edx){1to2}, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} Disp8 66 vpmultishiftqb -1032(%edx){1to2}, %xmm5, %xmm6{%k7} # AVX512{VBMI,VL} 67 vpmultishiftqb %ymm4, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 68 vpmultishiftqb %ymm4, %ymm5, %ymm6{%k7}{z} # AVX512{VBMI,VL} 69 vpmultishiftqb (%ecx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 70 vpmultishiftqb -123456(%esp,%esi,8), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 71 vpmultishiftqb (%eax){1to4}, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 72 vpmultishiftqb 4064(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 73 vpmultishiftqb 4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 74 vpmultishiftqb -4096(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 75 vpmultishiftqb -4128(%edx), %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 76 vpmultishiftqb 1016(%edx){1to4}, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 77 vpmultishiftqb 1024(%edx){1to4}, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 78 vpmultishiftqb -1024(%edx){1to4}, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} Disp8 79 vpmultishiftqb -1032(%edx){1to4}, %ymm5, %ymm6{%k7} # AVX512{VBMI,VL} 80 81 .intel_syntax noprefix 82 vpermb xmm6{k7}, xmm5, xmm4 # AVX512{VBMI,VL} 83 vpermb xmm6{k7}{z}, xmm5, xmm4 # AVX512{VBMI,VL} 84 vpermb xmm6{k7}, xmm5, XMMWORD PTR [ecx] # AVX512{VBMI,VL} 85 vpermb xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 86 vpermb xmm6{k7}, xmm5, XMMWORD PTR [edx+2032] # AVX512{VBMI,VL} Disp8 87 vpermb xmm6{k7}, xmm5, XMMWORD PTR [edx+2048] # AVX512{VBMI,VL} 88 vpermb xmm6{k7}, xmm5, XMMWORD PTR [edx-2048] # AVX512{VBMI,VL} Disp8 89 vpermb xmm6{k7}, xmm5, XMMWORD PTR [edx-2064] # AVX512{VBMI,VL} 90 vpermb ymm6{k7}, ymm5, ymm4 # AVX512{VBMI,VL} 91 vpermb ymm6{k7}{z}, ymm5, ymm4 # AVX512{VBMI,VL} 92 vpermb ymm6{k7}, ymm5, YMMWORD PTR [ecx] # AVX512{VBMI,VL} 93 vpermb ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 94 vpermb ymm6{k7}, ymm5, YMMWORD PTR [edx+4064] # AVX512{VBMI,VL} Disp8 95 vpermb ymm6{k7}, ymm5, YMMWORD PTR [edx+4096] # AVX512{VBMI,VL} 96 vpermb ymm6{k7}, ymm5, YMMWORD PTR [edx-4096] # AVX512{VBMI,VL} Disp8 97 vpermb ymm6{k7}, ymm5, YMMWORD PTR [edx-4128] # AVX512{VBMI,VL} 98 vpermi2b xmm6{k7}, xmm5, xmm4 # AVX512{VBMI,VL} 99 vpermi2b xmm6{k7}{z}, xmm5, xmm4 # AVX512{VBMI,VL} 100 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [ecx] # AVX512{VBMI,VL} 101 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 102 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [edx+2032] # AVX512{VBMI,VL} Disp8 103 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [edx+2048] # AVX512{VBMI,VL} 104 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [edx-2048] # AVX512{VBMI,VL} Disp8 105 vpermi2b xmm6{k7}, xmm5, XMMWORD PTR [edx-2064] # AVX512{VBMI,VL} 106 vpermi2b ymm6{k7}, ymm5, ymm4 # AVX512{VBMI,VL} 107 vpermi2b ymm6{k7}{z}, ymm5, ymm4 # AVX512{VBMI,VL} 108 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [ecx] # AVX512{VBMI,VL} 109 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 110 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [edx+4064] # AVX512{VBMI,VL} Disp8 111 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [edx+4096] # AVX512{VBMI,VL} 112 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [edx-4096] # AVX512{VBMI,VL} Disp8 113 vpermi2b ymm6{k7}, ymm5, YMMWORD PTR [edx-4128] # AVX512{VBMI,VL} 114 vpermt2b xmm6{k7}, xmm5, xmm4 # AVX512{VBMI,VL} 115 vpermt2b xmm6{k7}{z}, xmm5, xmm4 # AVX512{VBMI,VL} 116 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [ecx] # AVX512{VBMI,VL} 117 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 118 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [edx+2032] # AVX512{VBMI,VL} Disp8 119 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [edx+2048] # AVX512{VBMI,VL} 120 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [edx-2048] # AVX512{VBMI,VL} Disp8 121 vpermt2b xmm6{k7}, xmm5, XMMWORD PTR [edx-2064] # AVX512{VBMI,VL} 122 vpermt2b ymm6{k7}, ymm5, ymm4 # AVX512{VBMI,VL} 123 vpermt2b ymm6{k7}{z}, ymm5, ymm4 # AVX512{VBMI,VL} 124 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [ecx] # AVX512{VBMI,VL} 125 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 126 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [edx+4064] # AVX512{VBMI,VL} Disp8 127 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [edx+4096] # AVX512{VBMI,VL} 128 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [edx-4096] # AVX512{VBMI,VL} Disp8 129 vpermt2b ymm6{k7}, ymm5, YMMWORD PTR [edx-4128] # AVX512{VBMI,VL} 130 vpmultishiftqb xmm6{k7}, xmm5, xmm4 # AVX512{VBMI,VL} 131 vpmultishiftqb xmm6{k7}{z}, xmm5, xmm4 # AVX512{VBMI,VL} 132 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [ecx] # AVX512{VBMI,VL} 133 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 134 vpmultishiftqb xmm6{k7}, xmm5, [eax]{1to2} # AVX512{VBMI,VL} 135 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [edx+2032] # AVX512{VBMI,VL} Disp8 136 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [edx+2048] # AVX512{VBMI,VL} 137 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [edx-2048] # AVX512{VBMI,VL} Disp8 138 vpmultishiftqb xmm6{k7}, xmm5, XMMWORD PTR [edx-2064] # AVX512{VBMI,VL} 139 vpmultishiftqb xmm6{k7}, xmm5, [edx+1016]{1to2} # AVX512{VBMI,VL} Disp8 140 vpmultishiftqb xmm6{k7}, xmm5, [edx+1024]{1to2} # AVX512{VBMI,VL} 141 vpmultishiftqb xmm6{k7}, xmm5, [edx-1024]{1to2} # AVX512{VBMI,VL} Disp8 142 vpmultishiftqb xmm6{k7}, xmm5, [edx-1032]{1to2} # AVX512{VBMI,VL} 143 vpmultishiftqb ymm6{k7}, ymm5, ymm4 # AVX512{VBMI,VL} 144 vpmultishiftqb ymm6{k7}{z}, ymm5, ymm4 # AVX512{VBMI,VL} 145 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [ecx] # AVX512{VBMI,VL} 146 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8-123456] # AVX512{VBMI,VL} 147 vpmultishiftqb ymm6{k7}, ymm5, [eax]{1to4} # AVX512{VBMI,VL} 148 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [edx+4064] # AVX512{VBMI,VL} Disp8 149 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [edx+4096] # AVX512{VBMI,VL} 150 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [edx-4096] # AVX512{VBMI,VL} Disp8 151 vpmultishiftqb ymm6{k7}, ymm5, YMMWORD PTR [edx-4128] # AVX512{VBMI,VL} 152 vpmultishiftqb ymm6{k7}, ymm5, [edx+1016]{1to4} # AVX512{VBMI,VL} Disp8 153 vpmultishiftqb ymm6{k7}, ymm5, [edx+1024]{1to4} # AVX512{VBMI,VL} 154 vpmultishiftqb ymm6{k7}, ymm5, [edx-1024]{1to4} # AVX512{VBMI,VL} Disp8 155 vpmultishiftqb ymm6{k7}, ymm5, [edx-1032]{1to4} # AVX512{VBMI,VL} 156