Home | History | Annotate | Download | only in X86
      1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx -mattr=+avx512vl -mattr=+avx512vbmi --show-encoding %s | FileCheck %s
      2 
      3      vpermb %xmm28, %xmm29, %xmm30 {%k7}
      4 //CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7}
      5 //CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
      6 
      7      vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
      8 //CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
      9 //CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
     10 
     11      vpermb (%rcx), %xmm29, %xmm30
     12 //CHECK: vpermb (%rcx), %xmm29, %xmm30
     13 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
     14 
     15      vpermb 0x123(%rax,%r14,8), %xmm29, %xmm30
     16 //CHECK: vpermb 291(%rax,%r14,8), %xmm29, %xmm30
     17 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
     18 
     19      vpermb 0x7f0(%rdx), %xmm29, %xmm30
     20 //CHECK: vpermb 2032(%rdx), %xmm29, %xmm30
     21 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
     22 
     23      vpermb 0x800(%rdx), %xmm29, %xmm30
     24 //CHECK: vpermb 2048(%rdx), %xmm29, %xmm30
     25 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
     26 
     27      vpermb -0x800(%rdx), %xmm29, %xmm30
     28 //CHECK: vpermb -2048(%rdx), %xmm29, %xmm30
     29 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
     30 
     31      vpermb -0x810(%rdx), %xmm29, %xmm30
     32 //CHECK: vpermb -2064(%rdx), %xmm29, %xmm30
     33 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
     34 
     35      vpermb %ymm28, %ymm29, %ymm30
     36 //CHECK: vpermb %ymm28, %ymm29, %ymm30
     37 //CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
     38 
     39      vpermb %ymm28, %ymm29, %ymm30 {%k7}
     40 //CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7}
     41 //CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
     42 
     43      vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
     44 //CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
     45 //CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
     46 
     47      vpermb (%rcx), %ymm29, %ymm30
     48 //CHECK: vpermb (%rcx), %ymm29, %ymm30
     49 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
     50 
     51      vpermb 0x123(%rax,%r14,8), %ymm29, %ymm30
     52 //CHECK: vpermb 291(%rax,%r14,8), %ymm29, %ymm30
     53 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
     54 
     55      vpermb 0xfe0(%rdx), %ymm29, %ymm30
     56 //CHECK: vpermb 4064(%rdx), %ymm29, %ymm30
     57 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
     58 
     59      vpermb 0x1000(%rdx), %ymm29, %ymm30
     60 //CHECK: vpermb 4096(%rdx), %ymm29, %ymm30
     61 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
     62 
     63      vpermb -0x1000(%rdx), %ymm29, %ymm30
     64 //CHECK: vpermb -4096(%rdx), %ymm29, %ymm30
     65 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
     66 
     67      vpermb -0x1020(%rdx), %ymm29, %ymm30
     68 //CHECK: vpermb -4128(%rdx), %ymm29, %ymm30
     69 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
     70 
     71      vpermb %xmm28, %xmm29, %xmm30
     72 //CHECK: vpermb %xmm28, %xmm29, %xmm30
     73 //CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
     74 
     75      vpermb 0x1234(%rax,%r14,8), %xmm29, %xmm30
     76 //CHECK: vpermb 4660(%rax,%r14,8), %xmm29, %xmm30
     77 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
     78 
     79      vpermb 0x1234(%rax,%r14,8), %ymm29, %ymm30
     80 //CHECK: vpermb 4660(%rax,%r14,8), %ymm29, %ymm30
     81 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
     82 
     83      vpermb %zmm28, %zmm29, %zmm30
     84 //CHECK: vpermb %zmm28, %zmm29, %zmm30
     85 //CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
     86 
     87      vpermb %zmm28, %zmm29, %zmm30 {%k7}
     88 //CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7}
     89 //CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
     90 
     91      vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
     92 //CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
     93 //CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
     94 
     95      vpermb (%rcx), %zmm29, %zmm30
     96 //CHECK: vpermb (%rcx), %zmm29, %zmm30
     97 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
     98 
     99      vpermb 0x123(%rax,%r14,8), %zmm29, %zmm30
    100 //CHECK: vpermb 291(%rax,%r14,8), %zmm29, %zmm30
    101 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
    102 
    103      vpermb 0x1fc0(%rdx), %zmm29, %zmm30
    104 //CHECK: vpermb 8128(%rdx), %zmm29, %zmm30
    105 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
    106 
    107      vpermb 0x2000(%rdx), %zmm29, %zmm30
    108 //CHECK: vpermb 8192(%rdx), %zmm29, %zmm30
    109 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
    110 
    111      vpermb -0x2000(%rdx), %zmm29, %zmm30
    112 //CHECK: vpermb -8192(%rdx), %zmm29, %zmm30
    113 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
    114 
    115      vpermb -0x2040(%rdx), %zmm29, %zmm30
    116 //CHECK: vpermb -8256(%rdx), %zmm29, %zmm30
    117 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
    118 
    119      vpermb 0x1234(%rax,%r14,8), %zmm29, %zmm30
    120 //CHECK: vpermb 4660(%rax,%r14,8), %zmm29, %zmm30
    121 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
    122 
    123      vpermt2b %xmm28, %xmm29, %xmm30
    124 //CHECK: vpermt2b %xmm28, %xmm29, %xmm30
    125 //CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
    126 
    127      vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
    128 //CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
    129 //CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
    130 
    131      vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
    132 //CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
    133 //CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
    134 
    135      vpermt2b (%rcx), %xmm29, %xmm30
    136 //CHECK: vpermt2b (%rcx), %xmm29, %xmm30
    137 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
    138 
    139      vpermt2b 0x123(%rax,%r14,8), %xmm29, %xmm30
    140 //CHECK: vpermt2b 291(%rax,%r14,8), %xmm29, %xmm30
    141 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
    142 
    143      vpermt2b 0x7f0(%rdx), %xmm29, %xmm30
    144 //CHECK: vpermt2b 2032(%rdx), %xmm29, %xmm30
    145 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
    146 
    147      vpermt2b 0x800(%rdx), %xmm29, %xmm30
    148 //CHECK: vpermt2b 2048(%rdx), %xmm29, %xmm30
    149 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
    150 
    151      vpermt2b -0x800(%rdx), %xmm29, %xmm30
    152 //CHECK: vpermt2b -2048(%rdx), %xmm29, %xmm30
    153 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
    154 
    155      vpermt2b -0x810(%rdx), %xmm29, %xmm30
    156 //CHECK: vpermt2b -2064(%rdx), %xmm29, %xmm30
    157 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
    158 
    159      vpermt2b %ymm28, %ymm29, %ymm30
    160 //CHECK: vpermt2b %ymm28, %ymm29, %ymm30
    161 //CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
    162 
    163      vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
    164 //CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
    165 //CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
    166 
    167      vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
    168 //CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
    169 //CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
    170 
    171      vpermt2b (%rcx), %ymm29, %ymm30
    172 //CHECK: vpermt2b (%rcx), %ymm29, %ymm30
    173 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
    174 
    175      vpermt2b 0x123(%rax,%r14,8), %ymm29, %ymm30
    176 //CHECK: vpermt2b 291(%rax,%r14,8), %ymm29, %ymm30
    177 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
    178 
    179      vpermt2b 0xfe0(%rdx), %ymm29, %ymm30
    180 //CHECK: vpermt2b 4064(%rdx), %ymm29, %ymm30
    181 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
    182 
    183      vpermt2b 0x1000(%rdx), %ymm29, %ymm30
    184 //CHECK: vpermt2b 4096(%rdx), %ymm29, %ymm30
    185 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
    186 
    187      vpermt2b -0x1000(%rdx), %ymm29, %ymm30
    188 //CHECK: vpermt2b -4096(%rdx), %ymm29, %ymm30
    189 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
    190 
    191      vpermt2b -0x1020(%rdx), %ymm29, %ymm30
    192 //CHECK: vpermt2b -4128(%rdx), %ymm29, %ymm30
    193 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
    194 
    195      vpermt2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
    196 //CHECK: vpermt2b 4660(%rax,%r14,8), %xmm29, %xmm30
    197 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
    198 
    199      vpermt2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
    200 //CHECK: vpermt2b 4660(%rax,%r14,8), %ymm29, %ymm30
    201 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
    202 
    203      vpermt2b %zmm28, %zmm29, %zmm30
    204 //CHECK: vpermt2b %zmm28, %zmm29, %zmm30
    205 //CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
    206 
    207      vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
    208 //CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
    209 //CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
    210 
    211      vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
    212 //CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
    213 //CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
    214 
    215      vpermt2b (%rcx), %zmm29, %zmm30
    216 //CHECK: vpermt2b (%rcx), %zmm29, %zmm30
    217 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
    218 
    219      vpermt2b 0x123(%rax,%r14,8), %zmm29, %zmm30
    220 //CHECK: vpermt2b 291(%rax,%r14,8), %zmm29, %zmm30
    221 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
    222 
    223      vpermt2b 0x1fc0(%rdx), %zmm29, %zmm30
    224 //CHECK: vpermt2b 8128(%rdx), %zmm29, %zmm30
    225 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
    226 
    227      vpermt2b 0x2000(%rdx), %zmm29, %zmm30
    228 //CHECK: vpermt2b 8192(%rdx), %zmm29, %zmm30
    229 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
    230 
    231      vpermt2b -0x2000(%rdx), %zmm29, %zmm30
    232 //CHECK: vpermt2b -8192(%rdx), %zmm29, %zmm30
    233 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
    234 
    235      vpermt2b -0x2040(%rdx), %zmm29, %zmm30
    236 //CHECK: vpermt2b -8256(%rdx), %zmm29, %zmm30
    237 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
    238 
    239      vpermt2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
    240 //CHECK: vpermt2b 4660(%rax,%r14,8), %zmm29, %zmm30
    241 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
    242 
    243      vpermi2b %xmm28, %xmm29, %xmm30
    244 //CHECK: vpermi2b %xmm28, %xmm29, %xmm30
    245 //CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
    246 
    247      vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
    248 //CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
    249 //CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
    250 
    251      vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
    252 //CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
    253 //CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
    254 
    255      vpermi2b (%rcx), %xmm29, %xmm30
    256 //CHECK: vpermi2b (%rcx), %xmm29, %xmm30
    257 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
    258 
    259      vpermi2b 0x123(%rax,%r14,8), %xmm29, %xmm30
    260 //CHECK: vpermi2b 291(%rax,%r14,8), %xmm29, %xmm30
    261 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
    262 
    263      vpermi2b 0x7f0(%rdx), %xmm29, %xmm30
    264 //CHECK: vpermi2b 2032(%rdx), %xmm29, %xmm30
    265 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
    266 
    267      vpermi2b 0x800(%rdx), %xmm29, %xmm30
    268 //CHECK: vpermi2b 2048(%rdx), %xmm29, %xmm30
    269 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
    270 
    271      vpermi2b -0x800(%rdx), %xmm29, %xmm30
    272 //CHECK: vpermi2b -2048(%rdx), %xmm29, %xmm30
    273 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
    274 
    275      vpermi2b -0x810(%rdx), %xmm29, %xmm30
    276 //CHECK: vpermi2b -2064(%rdx), %xmm29, %xmm30
    277 //CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
    278 
    279      vpermi2b %ymm28, %ymm29, %ymm30
    280 //CHECK: vpermi2b %ymm28, %ymm29, %ymm30
    281 //CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
    282 
    283      vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
    284 //CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
    285 //CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
    286 
    287      vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
    288 //CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
    289 //CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
    290 
    291      vpermi2b (%rcx), %ymm29, %ymm30
    292 //CHECK: vpermi2b (%rcx), %ymm29, %ymm30
    293 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
    294 
    295      vpermi2b 0x123(%rax,%r14,8), %ymm29, %ymm30
    296 //CHECK: vpermi2b 291(%rax,%r14,8), %ymm29, %ymm30
    297 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
    298 
    299      vpermi2b 0xfe0(%rdx), %ymm29, %ymm30
    300 //CHECK: vpermi2b 4064(%rdx), %ymm29, %ymm30
    301 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
    302 
    303      vpermi2b 0x1000(%rdx), %ymm29, %ymm30
    304 //CHECK: vpermi2b 4096(%rdx), %ymm29, %ymm30
    305 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
    306 
    307      vpermi2b -0x1000(%rdx), %ymm29, %ymm30
    308 //CHECK: vpermi2b -4096(%rdx), %ymm29, %ymm30
    309 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
    310 
    311      vpermi2b -0x1020(%rdx), %ymm29, %ymm30
    312 //CHECK: vpermi2b -4128(%rdx), %ymm29, %ymm30
    313 //CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
    314 
    315      vpermi2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
    316 //CHECK: vpermi2b 4660(%rax,%r14,8), %xmm29, %xmm30
    317 //CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
    318 
    319      vpermi2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
    320 //CHECK: vpermi2b 4660(%rax,%r14,8), %ymm29, %ymm30
    321 //CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
    322 
    323      vpermi2b %zmm28, %zmm29, %zmm30
    324 //CHECK: vpermi2b %zmm28, %zmm29, %zmm30
    325 //CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
    326 
    327      vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
    328 //CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
    329 //CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
    330 
    331      vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
    332 //CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
    333 //CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
    334 
    335      vpermi2b (%rcx), %zmm29, %zmm30
    336 //CHECK: vpermi2b (%rcx), %zmm29, %zmm30
    337 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
    338 
    339      vpermi2b 0x123(%rax,%r14,8), %zmm29, %zmm30
    340 //CHECK: vpermi2b 291(%rax,%r14,8), %zmm29, %zmm30
    341 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
    342 
    343      vpermi2b 0x1fc0(%rdx), %zmm29, %zmm30
    344 //CHECK: vpermi2b 8128(%rdx), %zmm29, %zmm30
    345 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
    346 
    347      vpermi2b 0x2000(%rdx), %zmm29, %zmm30
    348 //CHECK: vpermi2b 8192(%rdx), %zmm29, %zmm30
    349 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
    350 
    351      vpermi2b -0x2000(%rdx), %zmm29, %zmm30
    352 //CHECK: vpermi2b -8192(%rdx), %zmm29, %zmm30
    353 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
    354 
    355      vpermi2b -0x2040(%rdx), %zmm29, %zmm30
    356 //CHECK: vpermi2b -8256(%rdx), %zmm29, %zmm30
    357 //CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
    358 
    359      vpermi2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
    360 //CHECK: vpermi2b 4660(%rax,%r14,8), %zmm29, %zmm30
    361 //CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
    362 
    363   vpmultishiftqb %xmm28, %xmm29, %xmm30
    364 //CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30
    365 //CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
    366 
    367   vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
    368 //CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
    369 //CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
    370 
    371   vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
    372 //CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
    373 //CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
    374 
    375   vpmultishiftqb (%rcx), %xmm29, %xmm30
    376 //CHECK: vpmultishiftqb (%rcx), %xmm29, %xmm30
    377 //CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
    378 
    379   vpmultishiftqb 0x123(%rax,%r14,8), %xmm29, %xmm30
    380 //CHECK: vpmultishiftqb 291(%rax,%r14,8), %xmm29, %xmm30
    381 //CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
    382 
    383   vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
    384 //CHECK: vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
    385 
    386 //CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
    387 
    388   vpmultishiftqb 0x7f0(%rdx), %xmm29, %xmm30
    389 //CHECK: vpmultishiftqb 2032(%rdx), %xmm29, %xmm30
    390 //CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
    391 
    392   vpmultishiftqb 0x800(%rdx), %xmm29, %xmm30
    393 //CHECK: vpmultishiftqb 2048(%rdx), %xmm29, %xmm30
    394 //CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
    395 
    396   vpmultishiftqb -0x800(%rdx), %xmm29, %xmm30
    397 //CHECK: vpmultishiftqb -2048(%rdx), %xmm29, %xmm30
    398 //CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
    399 
    400   vpmultishiftqb -0x810(%rdx), %xmm29, %xmm30
    401 //CHECK: vpmultishiftqb -2064(%rdx), %xmm29, %xmm30
    402 //CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
    403 
    404   vpmultishiftqb 0x3f8(%rdx){1to2}, %xmm29, %xmm30
    405 //CHECK: vpmultishiftqb 1016(%rdx){1to2}, %xmm29, %xmm30
    406 //CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
    407 
    408   vpmultishiftqb 0x400(%rdx){1to2}, %xmm29, %xmm30
    409 //CHECK: vpmultishiftqb 1024(%rdx){1to2}, %xmm29, %xmm30
    410 //CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
    411 
    412   vpmultishiftqb -0x400(%rdx){1to2}, %xmm29, %xmm30
    413 //CHECK: vpmultishiftqb -1024(%rdx){1to2}, %xmm29, %xmm30
    414 //CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
    415 
    416   vpmultishiftqb -0x408(%rdx){1to2}, %xmm29, %xmm30
    417 //CHECK: vpmultishiftqb -1032(%rdx){1to2}, %xmm29, %xmm30
    418 //CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
    419 
    420   vpmultishiftqb %ymm28, %ymm29, %ymm30
    421 //CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30
    422 //CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
    423 
    424   vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
    425 //CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
    426 //CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
    427 
    428   vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
    429 //CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
    430 //CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
    431 
    432   vpmultishiftqb (%rcx), %ymm29, %ymm30
    433 //CHECK: vpmultishiftqb (%rcx), %ymm29, %ymm30
    434 //CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
    435 
    436   vpmultishiftqb 0x123(%rax,%r14,8), %ymm29, %ymm30
    437 //CHECK: vpmultishiftqb 291(%rax,%r14,8), %ymm29, %ymm30
    438 //CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
    439 
    440   vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
    441 //CHECK: vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
    442 //CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
    443 
    444   vpmultishiftqb 0xfe0(%rdx), %ymm29, %ymm30
    445 //CHECK: vpmultishiftqb 4064(%rdx), %ymm29, %ymm30
    446 //CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
    447 
    448   vpmultishiftqb 0x1000(%rdx), %ymm29, %ymm30
    449 //CHECK: vpmultishiftqb 4096(%rdx), %ymm29, %ymm30
    450 //CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
    451 
    452   vpmultishiftqb -0x1000(%rdx), %ymm29, %ymm30
    453 //CHECK: vpmultishiftqb -4096(%rdx), %ymm29, %ymm30
    454 //CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
    455 
    456   vpmultishiftqb -0x1020(%rdx), %ymm29, %ymm30
    457 //CHECK: vpmultishiftqb -4128(%rdx), %ymm29, %ymm30
    458 //CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
    459 
    460   vpmultishiftqb 0x3f8(%rdx){1to4}, %ymm29, %ymm30
    461 //CHECK: vpmultishiftqb 1016(%rdx){1to4}, %ymm29, %ymm30
    462 //CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
    463 
    464   vpmultishiftqb 0x400(%rdx){1to4}, %ymm29, %ymm30
    465 //CHECK: vpmultishiftqb 1024(%rdx){1to4}, %ymm29, %ymm30
    466 //CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
    467 
    468   vpmultishiftqb -0x400(%rdx){1to4}, %ymm29, %ymm30
    469 //CHECK: vpmultishiftqb -1024(%rdx){1to4}, %ymm29, %ymm30
    470 //CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
    471 
    472   vpmultishiftqb -0x408(%rdx){1to4}, %ymm29, %ymm30
    473 //CHECK: vpmultishiftqb -1032(%rdx){1to4}, %ymm29, %ymm30
    474 //CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
    475 
    476   vpmultishiftqb 0x1234(%rax,%r14,8), %xmm29, %xmm30
    477 //CHECK: vpmultishiftqb 4660(%rax,%r14,8), %xmm29, %xmm30
    478 //CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
    479 
    480   vpmultishiftqb 0x1234(%rax,%r14,8), %ymm29, %ymm30
    481 //CHECK: vpmultishiftqb 4660(%rax,%r14,8), %ymm29, %ymm30
    482 //CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
    483 
    484   vpmultishiftqb %zmm28, %zmm29, %zmm30
    485 //CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30
    486 //CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
    487 
    488   vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
    489 //CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
    490 //CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
    491 
    492   vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
    493 //CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
    494 //CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
    495 
    496   vpmultishiftqb (%rcx), %zmm29, %zmm30
    497 //CHECK: vpmultishiftqb (%rcx), %zmm29, %zmm30
    498 //CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
    499 
    500   vpmultishiftqb 0x123(%rax,%r14,8), %zmm29, %zmm30
    501 //CHECK: vpmultishiftqb 291(%rax,%r14,8), %zmm29, %zmm30
    502 //CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
    503 
    504   vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
    505 //CHECK: vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
    506 //CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
    507 
    508   vpmultishiftqb 0x1fc0(%rdx), %zmm29, %zmm30
    509 //CHECK: vpmultishiftqb 8128(%rdx), %zmm29, %zmm30
    510 //CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
    511 
    512   vpmultishiftqb 0x2000(%rdx), %zmm29, %zmm30
    513 //CHECK: vpmultishiftqb 8192(%rdx), %zmm29, %zmm30
    514 //CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
    515 
    516   vpmultishiftqb -0x2000(%rdx), %zmm29, %zmm30
    517 //CHECK: vpmultishiftqb -8192(%rdx), %zmm29, %zmm30
    518 //CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
    519 
    520   vpmultishiftqb -0x2040(%rdx), %zmm29, %zmm30
    521 //CHECK: vpmultishiftqb -8256(%rdx), %zmm29, %zmm30
    522 //CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
    523 
    524   vpmultishiftqb 0x3f8(%rdx){1to8}, %zmm29, %zmm30
    525 //CHECK: vpmultishiftqb 1016(%rdx){1to8}, %zmm29, %zmm30
    526 //CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
    527 
    528   vpmultishiftqb 0x400(%rdx){1to8}, %zmm29, %zmm30
    529 //CHECK: vpmultishiftqb 1024(%rdx){1to8}, %zmm29, %zmm30
    530 //CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
    531 
    532   vpmultishiftqb -0x400(%rdx){1to8}, %zmm29, %zmm30
    533 //CHECK: vpmultishiftqb -1024(%rdx){1to8}, %zmm29, %zmm30
    534 //CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
    535 
    536   vpmultishiftqb -0x408(%rdx){1to8}, %zmm29, %zmm30
    537 //CHECK: vpmultishiftqb -1032(%rdx){1to8}, %zmm29, %zmm30
    538 //CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
    539 
    540   vpmultishiftqb 0x1234(%rax,%r14,8), %zmm29, %zmm30
    541 //CHECK: vpmultishiftqb 4660(%rax,%r14,8), %zmm29, %zmm30
    542 //CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
    543 
    544