339 lines · plain
1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s2 3// CHECK: vpopcntb %xmm23, %xmm214// CHECK: encoding: [0x62,0xa2,0x7d,0x08,0x54,0xef]5 vpopcntb %xmm23, %xmm216 7// CHECK: vpopcntw %xmm23, %xmm218// CHECK: encoding: [0x62,0xa2,0xfd,0x08,0x54,0xef]9 vpopcntw %xmm23, %xmm2110 11// CHECK: vpopcntb %xmm3, %xmm1 {%k2}12// CHECK: encoding: [0x62,0xf2,0x7d,0x0a,0x54,0xcb]13 vpopcntb %xmm3, %xmm1 {%k2}14 15// CHECK: vpopcntw %xmm3, %xmm1 {%k2}16// CHECK: encoding: [0x62,0xf2,0xfd,0x0a,0x54,0xcb]17 vpopcntw %xmm3, %xmm1 {%k2}18 19// CHECK: vpopcntb (%rcx), %xmm120// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x09]21 vpopcntb (%rcx), %xmm122 23// CHECK: vpopcntb -64(%rsp), %xmm124// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0xfc]25 vpopcntb -64(%rsp), %xmm126 27// CHECK: vpopcntb 64(%rsp), %xmm128// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0x04]29 vpopcntb 64(%rsp), %xmm130 31// CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm132// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]33 vpopcntb 268435456(%rcx,%r14,8), %xmm134 35// CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm136// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]37 vpopcntb -536870912(%rcx,%r14,8), %xmm138 39// CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm140// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]41 vpopcntb -536870910(%rcx,%r14,8), %xmm142 43// CHECK: vpopcntw (%rcx), %xmm144// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x09]45 vpopcntw (%rcx), %xmm146 47// CHECK: vpopcntw -64(%rsp), %xmm148// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0xfc]49 vpopcntw -64(%rsp), %xmm150 51// CHECK: vpopcntw 64(%rsp), %xmm152// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0x04]53 vpopcntw 64(%rsp), %xmm154 55// CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm156// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]57 vpopcntw 268435456(%rcx,%r14,8), %xmm158 59// CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm160// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]61 vpopcntw -536870912(%rcx,%r14,8), %xmm162 63// CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm164// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]65 vpopcntw -536870910(%rcx,%r14,8), %xmm166 67// CHECK: vpopcntb (%rcx), %xmm21 {%k2}68// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x29]69 vpopcntb (%rcx), %xmm21 {%k2}70 71// CHECK: vpopcntb -64(%rsp), %xmm21 {%k2}72// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0xfc]73 vpopcntb -64(%rsp), %xmm21 {%k2}74 75// CHECK: vpopcntb 64(%rsp), %xmm21 {%k2}76// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0x04]77 vpopcntb 64(%rsp), %xmm21 {%k2}78 79// CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2}80// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]81 vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2}82 83// CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2}84// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]85 vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2}86 87// CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2}88// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]89 vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2}90 91// CHECK: vpopcntw (%rcx), %xmm21 {%k2}92// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x29]93 vpopcntw (%rcx), %xmm21 {%k2}94 95// CHECK: vpopcntw -64(%rsp), %xmm21 {%k2}96// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0xfc]97 vpopcntw -64(%rsp), %xmm21 {%k2}98 99// CHECK: vpopcntw 64(%rsp), %xmm21 {%k2}100// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0x04]101 vpopcntw 64(%rsp), %xmm21 {%k2}102 103// CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2}104// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]105 vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2}106 107// CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2}108// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]109 vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2}110 111// CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2}112// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]113 vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2}114 115// CHECK: vpopcntb %ymm23, %ymm21116// CHECK: encoding: [0x62,0xa2,0x7d,0x28,0x54,0xef]117 vpopcntb %ymm23, %ymm21118 119// CHECK: vpopcntw %ymm23, %ymm21120// CHECK: encoding: [0x62,0xa2,0xfd,0x28,0x54,0xef]121 vpopcntw %ymm23, %ymm21122 123// CHECK: vpopcntb %ymm3, %ymm1 {%k2}124// CHECK: encoding: [0x62,0xf2,0x7d,0x2a,0x54,0xcb]125 vpopcntb %ymm3, %ymm1 {%k2}126 127// CHECK: vpopcntw %ymm3, %ymm1 {%k2}128// CHECK: encoding: [0x62,0xf2,0xfd,0x2a,0x54,0xcb]129 vpopcntw %ymm3, %ymm1 {%k2}130 131// CHECK: vpopcntb (%rcx), %ymm1132// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x09]133 vpopcntb (%rcx), %ymm1134 135// CHECK: vpopcntb -128(%rsp), %ymm1136// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0xfc]137 vpopcntb -128(%rsp), %ymm1138 139// CHECK: vpopcntb 128(%rsp), %ymm1140// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0x04]141 vpopcntb 128(%rsp), %ymm1142 143// CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm1144// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]145 vpopcntb 268435456(%rcx,%r14,8), %ymm1146 147// CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm1148// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]149 vpopcntb -536870912(%rcx,%r14,8), %ymm1150 151// CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm1152// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]153 vpopcntb -536870910(%rcx,%r14,8), %ymm1154 155// CHECK: vpopcntw (%rcx), %ymm1156// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x09]157 vpopcntw (%rcx), %ymm1158 159// CHECK: vpopcntw -128(%rsp), %ymm1160// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0xfc]161 vpopcntw -128(%rsp), %ymm1162 163// CHECK: vpopcntw 128(%rsp), %ymm1164// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0x04]165 vpopcntw 128(%rsp), %ymm1166 167// CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm1168// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10]169 vpopcntw 268435456(%rcx,%r14,8), %ymm1170 171// CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm1172// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0]173 vpopcntw -536870912(%rcx,%r14,8), %ymm1174 175// CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm1176// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0]177 vpopcntw -536870910(%rcx,%r14,8), %ymm1178 179// CHECK: vpopcntb (%rcx), %ymm21 {%k2}180// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x29]181 vpopcntb (%rcx), %ymm21 {%k2}182 183// CHECK: vpopcntb -128(%rsp), %ymm21 {%k2}184// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0xfc]185 vpopcntb -128(%rsp), %ymm21 {%k2}186 187// CHECK: vpopcntb 128(%rsp), %ymm21 {%k2}188// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0x04]189 vpopcntb 128(%rsp), %ymm21 {%k2}190 191// CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2}192// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]193 vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2}194 195// CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2}196// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]197 vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2}198 199// CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2}200// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]201 vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2}202 203// CHECK: vpopcntw (%rcx), %ymm21 {%k2}204// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x29]205 vpopcntw (%rcx), %ymm21 {%k2}206 207// CHECK: vpopcntw -128(%rsp), %ymm21 {%k2}208// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0xfc]209 vpopcntw -128(%rsp), %ymm21 {%k2}210 211// CHECK: vpopcntw 128(%rsp), %ymm21 {%k2}212// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0x04]213 vpopcntw 128(%rsp), %ymm21 {%k2}214 215// CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2}216// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10]217 vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2}218 219// CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2}220// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0]221 vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2}222 223// CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2}224// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0]225 vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2}226 227// CHECK: vpshufbitqmb %xmm2, %xmm23, %k1228// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0xca]229 vpshufbitqmb %xmm2, %xmm23, %k1230 231// CHECK: vpshufbitqmb %xmm2, %xmm23, %k1 {%k2}232// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0xca]233 vpshufbitqmb %xmm2, %xmm23, %k1 {%k2}234 235// CHECK: vpshufbitqmb (%rcx), %xmm23, %k1236// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x09]237 vpshufbitqmb (%rcx), %xmm23, %k1238 239// CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1240// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0xfc]241 vpshufbitqmb -64(%rsp), %xmm23, %k1242 243// CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1244// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0x04]245 vpshufbitqmb 64(%rsp), %xmm23, %k1246 247// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1248// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]249 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1250 251// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1252// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]253 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1254 255// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1256// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]257 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1258 259// CHECK: vpshufbitqmb (%rcx), %xmm23, %k1 {%k2}260// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x09]261 vpshufbitqmb (%rcx), %xmm23, %k1 {%k2}262 263// CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2}264// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0xfc]265 vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2}266 267// CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2}268// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0x04]269 vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2}270 271// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2}272// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]273 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2}274 275// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2}276// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]277 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2}278 279// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2}280// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]281 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2}282 283// CHECK: vpshufbitqmb %ymm2, %ymm23, %k1284// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0xca]285 vpshufbitqmb %ymm2, %ymm23, %k1286 287// CHECK: vpshufbitqmb %ymm2, %ymm23, %k1 {%k2}288// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0xca]289 vpshufbitqmb %ymm2, %ymm23, %k1 {%k2}290 291// CHECK: vpshufbitqmb (%rcx), %ymm23, %k1292// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x09]293 vpshufbitqmb (%rcx), %ymm23, %k1294 295// CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1296// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0xfc]297 vpshufbitqmb -128(%rsp), %ymm23, %k1298 299// CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1300// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0x04]301 vpshufbitqmb 128(%rsp), %ymm23, %k1302 303// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1304// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]305 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1306 307// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1308// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]309 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1310 311// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1312// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]313 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1314 315// CHECK: vpshufbitqmb (%rcx), %ymm23, %k1 {%k2}316// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x09]317 vpshufbitqmb (%rcx), %ymm23, %k1 {%k2}318 319// CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2}320// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0xfc]321 vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2}322 323// CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2}324// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0x04]325 vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2}326 327// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2}328// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10]329 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2}330 331// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2}332// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0]333 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2}334 335// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2}336// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0]337 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2}338 339