1# Check EVEX WIG instructions 2 3 .allow_index_reg 4 .text 5_start: 6 7 vextractps $0xab, %xmm29, %rax # AVX512 8 vextractps $123, %xmm29, %rax # AVX512 9 vextractps $123, %xmm29, %r8 # AVX512 10 vextractps $123, %xmm29, (%rcx) # AVX512 11 vextractps $123, %xmm29, 0x123(%rax,%r14,8) # AVX512 12 vextractps $123, %xmm29, 508(%rdx) # AVX512 Disp8 13 vextractps $123, %xmm29, 512(%rdx) # AVX512 14 vextractps $123, %xmm29, -512(%rdx) # AVX512 Disp8 15 vextractps $123, %xmm29, -516(%rdx) # AVX512 16 17 {evex} vpextrb $0, %xmm0, %eax 18 {evex} vpextrb $0, %xmm0, (%rax) 19 20 {evex} vpextrw $0, %xmm0, %eax 21 {evex} {store} vpextrw $0, %xmm0, %eax 22 {evex} vpextrw $0, %xmm0, (%rax) 23 24 {evex} vpinsrb $0, %eax, %xmm0, %xmm0 25 {evex} vpinsrb $0, (%rax), %xmm0, %xmm0 26 27 {evex} vpinsrw $0, %eax, %xmm0, %xmm0 28 {evex} vpinsrw $0, (%rax), %xmm0, %xmm0 29 30 vpmovsxbd %xmm29, %zmm30{%k7} # AVX512 31 vpmovsxbd %xmm29, %zmm30{%k7}{z} # AVX512 32 vpmovsxbd (%rcx), %zmm30{%k7} # AVX512 33 vpmovsxbd 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 34 vpmovsxbd 2032(%rdx), %zmm30{%k7} # AVX512 Disp8 35 vpmovsxbd 2048(%rdx), %zmm30{%k7} # AVX512 36 vpmovsxbd -2048(%rdx), %zmm30{%k7} # AVX512 Disp8 37 vpmovsxbd -2064(%rdx), %zmm30{%k7} # AVX512 38 39 vpmovsxbq %xmm29, %zmm30{%k7} # AVX512 40 vpmovsxbq %xmm29, %zmm30{%k7}{z} # AVX512 41 vpmovsxbq (%rcx), %zmm30{%k7} # AVX512 42 vpmovsxbq 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 43 vpmovsxbq 1016(%rdx), %zmm30{%k7} # AVX512 Disp8 44 vpmovsxbq 1024(%rdx), %zmm30{%k7} # AVX512 45 vpmovsxbq -1024(%rdx), %zmm30{%k7} # AVX512 Disp8 46 vpmovsxbq -1032(%rdx), %zmm30{%k7} # AVX512 47 48 vpmovsxwd %ymm29, %zmm30{%k7} # AVX512 49 vpmovsxwd %ymm29, %zmm30{%k7}{z} # AVX512 50 vpmovsxwd (%rcx), %zmm30{%k7} # AVX512 51 vpmovsxwd 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 52 vpmovsxwd 4064(%rdx), %zmm30{%k7} # AVX512 Disp8 53 vpmovsxwd 4096(%rdx), %zmm30{%k7} # AVX512 54 vpmovsxwd -4096(%rdx), %zmm30{%k7} # AVX512 Disp8 55 vpmovsxwd -4128(%rdx), %zmm30{%k7} # AVX512 56 57 vpmovsxwq %xmm29, %zmm30{%k7} # AVX512 58 vpmovsxwq %xmm29, %zmm30{%k7}{z} # AVX512 59 vpmovsxwq (%rcx), %zmm30{%k7} # AVX512 60 vpmovsxwq 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 61 vpmovsxwq 2032(%rdx), %zmm30{%k7} # AVX512 Disp8 62 vpmovsxwq 2048(%rdx), %zmm30{%k7} # AVX512 63 vpmovsxwq -2048(%rdx), %zmm30{%k7} # AVX512 Disp8 64 vpmovsxwq -2064(%rdx), %zmm30{%k7} # AVX512 65 66 vpmovzxbd %xmm29, %zmm30{%k7} # AVX512 67 vpmovzxbd %xmm29, %zmm30{%k7}{z} # AVX512 68 vpmovzxbd (%rcx), %zmm30{%k7} # AVX512 69 vpmovzxbd 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 70 vpmovzxbd 2032(%rdx), %zmm30{%k7} # AVX512 Disp8 71 vpmovzxbd 2048(%rdx), %zmm30{%k7} # AVX512 72 vpmovzxbd -2048(%rdx), %zmm30{%k7} # AVX512 Disp8 73 vpmovzxbd -2064(%rdx), %zmm30{%k7} # AVX512 74 75 vpmovzxbq %xmm29, %zmm30{%k7} # AVX512 76 vpmovzxbq %xmm29, %zmm30{%k7}{z} # AVX512 77 vpmovzxbq (%rcx), %zmm30{%k7} # AVX512 78 vpmovzxbq 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 79 vpmovzxbq 1016(%rdx), %zmm30{%k7} # AVX512 Disp8 80 vpmovzxbq 1024(%rdx), %zmm30{%k7} # AVX512 81 vpmovzxbq -1024(%rdx), %zmm30{%k7} # AVX512 Disp8 82 vpmovzxbq -1032(%rdx), %zmm30{%k7} # AVX512 83 84 vpmovzxwd %ymm29, %zmm30{%k7} # AVX512 85 vpmovzxwd %ymm29, %zmm30{%k7}{z} # AVX512 86 vpmovzxwd (%rcx), %zmm30{%k7} # AVX512 87 vpmovzxwd 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 88 vpmovzxwd 4064(%rdx), %zmm30{%k7} # AVX512 Disp8 89 vpmovzxwd 4096(%rdx), %zmm30{%k7} # AVX512 90 vpmovzxwd -4096(%rdx), %zmm30{%k7} # AVX512 Disp8 91 vpmovzxwd -4128(%rdx), %zmm30{%k7} # AVX512 92 93 vpmovzxwq %xmm29, %zmm30{%k7} # AVX512 94 vpmovzxwq %xmm29, %zmm30{%k7}{z} # AVX512 95 vpmovzxwq (%rcx), %zmm30{%k7} # AVX512 96 vpmovzxwq 0x123(%rax,%r14,8), %zmm30{%k7} # AVX512 97 vpmovzxwq 2032(%rdx), %zmm30{%k7} # AVX512 Disp8 98 vpmovzxwq 2048(%rdx), %zmm30{%k7} # AVX512 99 vpmovzxwq -2048(%rdx), %zmm30{%k7} # AVX512 Disp8 100 vpmovzxwq -2064(%rdx), %zmm30{%k7} # AVX512 101 102 .intel_syntax noprefix 103 vextractps rax, xmm29, 0xab # AVX512 104 vextractps rax, xmm29, 123 # AVX512 105 vextractps r8, xmm29, 123 # AVX512 106 vextractps DWORD PTR [rcx], xmm29, 123 # AVX512 107 vextractps DWORD PTR [rax+r14*8+0x1234], xmm29, 123 # AVX512 108 vextractps DWORD PTR [rdx+508], xmm29, 123 # AVX512 Disp8 109 vextractps DWORD PTR [rdx+512], xmm29, 123 # AVX512 110 vextractps DWORD PTR [rdx-512], xmm29, 123 # AVX512 Disp8 111 vextractps DWORD PTR [rdx-516], xmm29, 123 # AVX512 112 113 vpmovsxbd zmm30{k7}, xmm29 # AVX512 114 vpmovsxbd zmm30{k7}{z}, xmm29 # AVX512 115 vpmovsxbd zmm30{k7}, XMMWORD PTR [rcx] # AVX512 116 vpmovsxbd zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234] # AVX512 117 vpmovsxbd zmm30{k7}, XMMWORD PTR [rdx+2032] # AVX512 Disp8 118 vpmovsxbd zmm30{k7}, XMMWORD PTR [rdx+2048] # AVX512 119 vpmovsxbd zmm30{k7}, XMMWORD PTR [rdx-2048] # AVX512 Disp8 120 vpmovsxbd zmm30{k7}, XMMWORD PTR [rdx-2064] # AVX512 121 122 vpmovsxbq zmm30{k7}, xmm29 # AVX512 123 vpmovsxbq zmm30{k7}{z}, xmm29 # AVX512 124 vpmovsxbq zmm30{k7}, QWORD PTR [rcx] # AVX512 125 vpmovsxbq zmm30{k7}, QWORD PTR [rax+r14*8+0x1234] # AVX512 126 vpmovsxbq zmm30{k7}, QWORD PTR [rdx+1016] # AVX512 Disp8 127 vpmovsxbq zmm30{k7}, QWORD PTR [rdx+1024] # AVX512 128 vpmovsxbq zmm30{k7}, QWORD PTR [rdx-1024] # AVX512 Disp8 129 vpmovsxbq zmm30{k7}, QWORD PTR [rdx-1032] # AVX512 130 131 vpmovsxwd zmm30{k7}, ymm29 # AVX512 132 vpmovsxwd zmm30{k7}{z}, ymm29 # AVX512 133 vpmovsxwd zmm30{k7}, YMMWORD PTR [rcx] # AVX512 134 vpmovsxwd zmm30{k7}, YMMWORD PTR [rax+r14*8+0x1234] # AVX512 135 vpmovsxwd zmm30{k7}, YMMWORD PTR [rdx+4064] # AVX512 Disp8 136 vpmovsxwd zmm30{k7}, YMMWORD PTR [rdx+4096] # AVX512 137 vpmovsxwd zmm30{k7}, YMMWORD PTR [rdx-4096] # AVX512 Disp8 138 vpmovsxwd zmm30{k7}, YMMWORD PTR [rdx-4128] # AVX512 139 140 vpmovsxwq zmm30{k7}, xmm29 # AVX512 141 vpmovsxwq zmm30{k7}{z}, xmm29 # AVX512 142 vpmovsxwq zmm30{k7}, XMMWORD PTR [rcx] # AVX512 143 vpmovsxwq zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234] # AVX512 144 vpmovsxwq zmm30{k7}, XMMWORD PTR [rdx+2032] # AVX512 Disp8 145 vpmovsxwq zmm30{k7}, XMMWORD PTR [rdx+2048] # AVX512 146 vpmovsxwq zmm30{k7}, XMMWORD PTR [rdx-2048] # AVX512 Disp8 147 vpmovsxwq zmm30{k7}, XMMWORD PTR [rdx-2064] # AVX512 148 149 vpmovzxbd zmm30{k7}, xmm29 # AVX512 150 vpmovzxbd zmm30{k7}{z}, xmm29 # AVX512 151 vpmovzxbd zmm30{k7}, XMMWORD PTR [rcx] # AVX512 152 vpmovzxbd zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234] # AVX512 153 vpmovzxbd zmm30{k7}, XMMWORD PTR [rdx+2032] # AVX512 Disp8 154 vpmovzxbd zmm30{k7}, XMMWORD PTR [rdx+2048] # AVX512 155 vpmovzxbd zmm30{k7}, XMMWORD PTR [rdx-2048] # AVX512 Disp8 156 vpmovzxbd zmm30{k7}, XMMWORD PTR [rdx-2064] # AVX512 157 158 vpmovzxbq zmm30{k7}, xmm29 # AVX512 159 vpmovzxbq zmm30{k7}{z}, xmm29 # AVX512 160 vpmovzxbq zmm30{k7}, QWORD PTR [rcx] # AVX512 161 vpmovzxbq zmm30{k7}, QWORD PTR [rax+r14*8+0x1234] # AVX512 162 vpmovzxbq zmm30{k7}, QWORD PTR [rdx+1016] # AVX512 Disp8 163 vpmovzxbq zmm30{k7}, QWORD PTR [rdx+1024] # AVX512 164 vpmovzxbq zmm30{k7}, QWORD PTR [rdx-1024] # AVX512 Disp8 165 vpmovzxbq zmm30{k7}, QWORD PTR [rdx-1032] # AVX512 166 167 vpmovzxwd zmm30{k7}, ymm29 # AVX512 168 vpmovzxwd zmm30{k7}{z}, ymm29 # AVX512 169 vpmovzxwd zmm30{k7}, YMMWORD PTR [rcx] # AVX512 170 vpmovzxwd zmm30{k7}, YMMWORD PTR [rax+r14*8+0x1234] # AVX512 171 vpmovzxwd zmm30{k7}, YMMWORD PTR [rdx+4064] # AVX512 Disp8 172 vpmovzxwd zmm30{k7}, YMMWORD PTR [rdx+4096] # AVX512 173 vpmovzxwd zmm30{k7}, YMMWORD PTR [rdx-4096] # AVX512 Disp8 174 vpmovzxwd zmm30{k7}, YMMWORD PTR [rdx-4128] # AVX512 175 176 vpmovzxwq zmm30{k7}, xmm29 # AVX512 177 vpmovzxwq zmm30{k7}{z}, xmm29 # AVX512 178 vpmovzxwq zmm30{k7}, XMMWORD PTR [rcx] # AVX512 179 vpmovzxwq zmm30{k7}, XMMWORD PTR [rax+r14*8+0x1234] # AVX512 180 vpmovzxwq zmm30{k7}, XMMWORD PTR [rdx+2032] # AVX512 Disp8 181 vpmovzxwq zmm30{k7}, XMMWORD PTR [rdx+2048] # AVX512 182 vpmovzxwq zmm30{k7}, XMMWORD PTR [rdx-2048] # AVX512 Disp8 183 vpmovzxwq zmm30{k7}, XMMWORD PTR [rdx-2064] # AVX512 184 185