brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · 7c6f9d7 Raw
360 lines · plain
1# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 -mcpu=knl | FileCheck %s2# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 -mcpu=skx | FileCheck --check-prefix=CHECK-SKX %s3 4# CHECK: vpbroadcastd    %xmm18, %zmm28 {%k7} {z}50x62 0x22 0x7d 0xcf 0x58 0xe26 7# CHECK: vbroadcastss    (%rsp), %zmm2880x62 0x62 0x7d 0x48 0x18 0x24 0x249 10# CHECK: vblendmpd       (%rsi), %zmm2, %zmm8 {%k7}110x62 0x72 0xed 0x4f 0x65 0x0612 13# CHECK: vpermpd (%rsi,%r10,4), %zmm2, %zmm8140x62 0x32 0xed 0x48 0x16 0x04 0x9615 16# CHECK: vpbroadcastmw2d %k2, %zmm8170x62 0x72 0x7e 0x48 0x3a 0xc218 19# CHECK-SKX: vpbroadcastmw2d %k2, %xmm8200x62 0x72 0x7e 0x08 0x3a 0xc221 22# CHECK-SKX: vpbroadcastmw2d %k2, %ymm8230x62 0x72 0x7e 0x28 0x3a 0xc224 25# CHECK: vpbroadcastq    (%r9,%rax), %zmm28260x62 0x42 0xfd 0x48 0x59 0x24 0x0127 28# CHECK: vbroadcastss    %xmm0, %zmm1290x62 0xf2 0x7d 0x48 0x18 0xc830 31# CHECK: vextracti32x4   $4, %zmm0, (%r10)320x62 0xd3 0x7d 0x48 0x39 0x02 0x0433 34# CHECK: vextracti32x4   $4, %zmm0, %xmm1350x62 0xf3 0x7d 0x48 0x39 0xc1 0x0436 37# CHECK: vinserti32x4    $1, %xmm21, %zmm5, %zmm17380x62 0xa3 0x55 0x48 0x38 0xcd 0x0139 40# CHECK: vmovaps %zmm21, %zmm5 {%k3}410x62 0xb1 0x7c 0x4b 0x28 0xed42 43# CHECK: vgatherdps      (%rsi,%zmm0,4), %zmm1 {%k2}440x62 0xf2 0x7d 0x4a 0x92 0x0c 0x8645 46# CHECK: vgatherdpd      (%rsi,%ymm0,4), %zmm1 {%k2}470x62 0xf2 0xfd 0x4a 0x92 0x0c 0x8648 49# CHECK: vgatherqps (%r13,%zmm4), %ymm5 {%k2}500x62 0xd2 0x7d 0x4a 0x93 0x6c 0x25 0x0051 52# CHECK: vpslld $16, %zmm21, %zmm22530x62 0xb1 0x4d 0x40 0x72 0xf5 0x1054 55# CHECK: vpord %zmm22, %zmm21, %zmm23560x62 0xa1 0x55 0x40 0xeb 0xfe57 58# CHECK: vmovq   %xmm19, 1016(%rdx)590x62 0xe1 0xfd 0x08 0x7e 0x5a 0x7f60 61#####################################################62#                MASK INSTRUCTIONS                  #63#####################################################64 65# CHECK: kshiftlw        $3, %k1, %k2660xc4 0xe3 0xf9 0x32 0xd1 0x0367 68# CHECK: kmovw   (%rdi), %k1690xc5 0xf8 0x90 0x0f70 71# CHECK: kmovw   %k1, %eax720xc5 0xf8 0x93 0xc173 74# CHECK: kandw   %k1, %k2, %k3750xc5 0xec 0x41 0xd976 77# CHECK: kmovw   %k5, %k1780xc5 0xf8 0x90 0xcd79 80#####################################################81#             COMPRESSED DISPLACEMENT               #82#####################################################83 84# TupleType = FVM85# CHECK: vmovdqu32 %zmm0, -448(%rcx)860x62 0xf1 0x7e 0x48 0x7f 0x41 0xf987 88# TupleType = T1S, 64-bit eltsize89# CHECK: vaddsd 256(%rdx), %xmm0, %xmm16900x62 0xe1 0xff 0x08 0x58 0x42 0x2091 92# TupleType = T1S, 32-bit eltsize93# CHECK: vaddss 256(%rdx), %xmm0, %xmm16940x62 0xe1 0x7e 0x08 0x58 0x42 0x4095 96# TupleType = FV97# CHECK: vaddpd 256(%rdx), %zmm0, %zmm16980x62 0xe1 0xfd 0x48 0x58 0x42 0x0499 100# TupleType = FV, broadcast, 64-bit eltsize101# CHECK: vaddpd 256(%rdx){1to8}, %zmm0, %zmm161020x62 0xe1 0xfd 0x58 0x58 0x42 0x20103 104# TupleType = FV, broadcast, 32-bit eltsize105# CHECK: vaddps 256(%rdx){1to16}, %zmm0, %zmm161060x62 0xe1 0x7c 0x58 0x58 0x42 0x40107 108# TupleType = T4109# CHECK: vbroadcasti32x4 256(%rdx), %zmm161100x62 0xe2 0x7d 0x48 0x5a 0x42 0x10111 112# Cases where we can't use cdisp8113# CHECK: vaddss 255(%rdx), %xmm0, %xmm161140x62 0xe1 0x7e 0x08 0x58 0x82 0xff 0x00 0x00 0x00115 116# CHECK: vaddss 1024(%rdx), %xmm0, %xmm161170x62 0xe1 0x7e 0x08 0x58 0x82 0x00 0x04 0x00 0x00118 119# CHECK: vpcmpeqd %zmm10, %zmm25, %k51200x62 0xd3 0x35 0x40 0x1f 0xea 0x0121 122# CHECK: vpcmpltd %zmm10, %zmm25, %k51230x62 0xd3 0x35 0x40 0x1f 0xea 0x1124 125# CHECK: vpcmpled %zmm10, %zmm25, %k51260x62 0xd3 0x35 0x40 0x1f 0xea 0x2127 128# CHECK: vpcmpd $3, %zmm10, %zmm25, %k51290x62 0xd3 0x35 0x40 0x1f 0xea 0x3130 131# CHECK: vpcmpneqd %zmm10, %zmm25, %k51320x62 0xd3 0x35 0x40 0x1f 0xea 0x4133 134# CHECK: vpcmpnltd %zmm10, %zmm25, %k51350x62 0xd3 0x35 0x40 0x1f 0xea 0x5136 137# CHECK: vpcmpnled %zmm10, %zmm25, %k51380x62 0xd3 0x35 0x40 0x1f 0xea 0x6139 140# CHECK: vpcmpd $7, %zmm10, %zmm25, %k51410x62 0xd3 0x35 0x40 0x1f 0xea 0x7142 143# CHECK: vpcmpd $8, %zmm10, %zmm25, %k51440x62 0xd3 0x35 0x40 0x1f 0xea 0x8145 146# CHECK: vcmppd	$127, {sae}, %zmm27, %zmm11, %k41470x62 0x91 0xa5 0x58 0xc2 0xe3 0x7f148 149# CHECK: vcmpsd	$204, (%rax), %xmm4, %k51500x62 0xf1 0xdf 0x8 0xc2 0x28 0xcc151 152# CHECK: vcmpss	$204, (%rax), %xmm4, %k51530x62 0xf1 0x5e 0x08 0xc2 0x28 0xcc154 155# CHECK: vcmpsd	$204, %xmm3, %xmm4, %k51560x62 0xf1 0xdf 0x08 0xc2 0xeb 0xcc157 158# CHECK: vcmpss	$204, %xmm3, %xmm4, %k51590x62 0xf1 0x5e 0x08 0xc2 0xeb 0xcc160 161# CHECK: vcmpsd	$204, {sae}, %xmm3, %xmm4, %k51620x62 0xf1 0xdf 0x18 0xc2 0xeb 0xcc163 164# CHECK: vcmpss	$204, {sae}, %xmm3, %xmm4, %k51650x62 0xf1 0x5e 0x18 0xc2 0xeb 0xcc166 167# CHECK: vcmppd	$127, %ymm27, %ymm11, %k41680x62 0x91 0xa5 0x28 0xc2 0xe3 0x7f169 170# CHECK: vcmpps	$127, %ymm27, %ymm11, %k41710x62 0x91 0x24 0x28 0xc2 0xe3 0x7f172 173# CHECK: vcmppd	$127, %xmm27, %xmm11, %k41740x62 0x91 0xa5 0x08 0xc2 0xe3 0x7f175 176# CHECK: vcmpps	$127, %xmm27, %xmm11, %k41770x62 0x91 0x24 0x08 0xc2 0xe3 0x7f178 179# CHECK: vcmpps	$37, %xmm1, %xmm0, %k1 {%k7}1800x62 0xf1 0x7c 0x0f 0xc2 0xc9 0x25181 182# CHECK: vcmpps	$37, %ymm1, %ymm0, %k1 {%k7}1830x62 0xf1 0x7c 0x2f 0xc2 0xc9 0x25184 185# CHECK: vpgatherdd 256(%r9,%xmm31), %xmm17 {%k1}1860x62 0x82 0x7d 0x01 0x90 0x4c 0x39 0x40187 188# CHECK: vpgatherdd 256(%r9,%ymm31), %ymm19 {%k1}1890x62 0x82 0x7d 0x21 0x90 0x5c 0x39 0x40190 191# CHECK: vpgatherdq 256(%r9,%xmm31), %xmm17 {%k1}1920x62 0x82 0xfd 0x01 0x90 0x4c 0x39 0x20193 194# CHECK: vpgatherdq 256(%r9,%xmm31), %ymm26 {%k1}1950x62 0x02 0xfd 0x21 0x90 0x54 0x39 0x20196 197# CHECK: vpgatherqd 256(%r9,%xmm31), %xmm21 {%k1}1980x62 0x82 0x7d 0x01 0x91 0x6c 0x39 0x40199 200# CHECK: vpgatherqd 256(%r9,%ymm31), %xmm25 {%k1}2010x62 0x02 0x7d 0x21 0x91 0x4c 0x39 0x40202 203# CHECK: vpgatherqq 256(%r9,%xmm31), %xmm18 {%k1}2040x62 0x82 0xfd 0x01 0x91 0x54 0x39 0x20205 206# CHECK: vpgatherqq 256(%r9,%ymm31), %ymm19 {%k1}2070x62 0x82 0xfd 0x21 0x91 0x5c 0x39 0x20208 209# CHECK: vgatherdpd 256(%r9,%xmm31), %xmm17 {%k1}2100x62 0x82 0xfd 0x01 0x92 0x4c 0x39 0x20211 212# CHECK: vgatherdpd 256(%r9,%xmm31), %ymm23 {%k1}2130x62 0x82 0xfd 0x21 0x92 0x7c 0x39 0x20214 215# CHECK: vgatherdps 256(%r9,%xmm31), %xmm18 {%k1}2160x62 0x82 0x7d 0x01 0x92 0x54 0x39 0x40217 218# CHECK: vgatherdps 256(%r9,%ymm31), %ymm27 {%k1}2190x62 0x02 0x7d 0x21 0x92 0x5c 0x39 0x40220 221# CHECK: vgatherqpd 256(%r9,%xmm31), %xmm17 {%k1}2220x62 0x82 0xfd 0x01 0x93 0x4c 0x39 0x20223 224# CHECK: vgatherqpd 256(%r9,%ymm31), %ymm29 {%k1}2250x62 0x02 0xfd 0x21 0x93 0x6c 0x39 0x20226 227# CHECK: vgatherqps 256(%r9,%xmm31), %xmm21 {%k1}2280x62 0x82 0x7d 0x01 0x93 0x6c 0x39 0x40229 230# CHECK: vgatherqps 256(%r9,%ymm31), %xmm19 {%k1}2310x62 0x82 0x7d 0x21 0x93 0x5c 0x39 0x40232 233# CHECK: vpscatterdd %xmm20, 256(%r9,%xmm31) {%k1}2340x62 0x82 0x7d 0x01 0xa0 0x64 0x39 0x40235 236# CHECK: vpscatterdd %ymm28, 256(%r9,%ymm31) {%k1}2370x62 0x02 0x7d 0x21 0xa0 0x64 0x39 0x40238 239# CHECK: vpscatterdq %xmm21, 256(%r9,%xmm31) {%k1}2400x62 0x82 0xfd 0x01 0xa0 0x6c 0x39 0x20241 242# CHECK: vpscatterdq %ymm28, 256(%r9,%xmm31) {%k1}2430x62 0x02 0xfd 0x21 0xa0 0x64 0x39 0x20244 245# CHECK: vpscatterqd %xmm22, 256(%r9,%xmm31) {%k1}2460x62 0x82 0x7d 0x01 0xa1 0x74 0x39 0x40247 248# CHECK: vpscatterqd %xmm24, 256(%r9,%ymm31) {%k1}2490x62 0x02 0x7d 0x21 0xa1 0x44 0x39 0x40250 251# CHECK: vpscatterqq %xmm28, 256(%r9,%xmm31) {%k1}2520x62 0x02 0xfd 0x01 0xa1 0x64 0x39 0x20253 254# CHECK: vpscatterqq %ymm19, 256(%r9,%ymm31) {%k1}2550x62 0x82 0xfd 0x21 0xa1 0x5c 0x39 0x20256 257# CHECK: vscatterdps %xmm20, 256(%r9,%xmm31) {%k1}2580x62 0x82 0x7d 0x01 0xa2 0x64 0x39 0x40259 260# CHECK: vscatterdps %ymm28, 256(%r9,%ymm31) {%k1}2610x62 0x02 0x7d 0x21 0xa2 0x64 0x39 0x40262 263# CHECK: vscatterdpd %xmm21, 256(%r9,%xmm31) {%k1}2640x62 0x82 0xfd 0x01 0xa2 0x6c 0x39 0x20265 266# CHECK: vscatterdpd %ymm28, 256(%r9,%xmm31) {%k1}2670x62 0x02 0xfd 0x21 0xa2 0x64 0x39 0x20268 269# CHECK: vscatterqps %xmm22, 256(%r9,%xmm31) {%k1}2700x62 0x82 0x7d 0x01 0xa3 0x74 0x39 0x40271 272# CHECK: vscatterqps %xmm24, 256(%r9,%ymm31) {%k1}2730x62 0x02 0x7d 0x21 0xa3 0x44 0x39 0x40274 275# CHECK: vscatterqpd %xmm28, 256(%r9,%xmm31) {%k1}2760x62 0x02 0xfd 0x01 0xa3 0x64 0x39 0x20277 278# CHECK: vscatterqpd %ymm19, 256(%r9,%ymm31) {%k1}2790x62 0x82 0xfd 0x21 0xa3 0x5c 0x39 0x20280 281#####################################################282#                  SAE ATTRIBUTE                    #283#####################################################284 285# CHECK: vcomisd {sae}, %xmm2, %xmm12860x62 0xf1 0xfd 0x18 0x2f 0xca287 288# Same as above but ignore EVEX L'L bits.289# CHECK: vcomisd {sae}, %xmm2, %xmm12900x62 0xf1 0xfd 0x78 0x2f 0xca291 292# CHECK: vminpd  {sae}, %zmm2, %zmm17, %zmm192930x62 0xe1 0xf5 0x10 0x5d 0xda294 295# Ignore EVEX L'L bits.296# CHECK: vminpd  {sae}, %zmm2, %zmm17, %zmm192970x62 0xe1 0xf5 0x30 0x5d 0xda298 299# Ignore EVEX L'L bits.300# CHECK: vminpd  {sae}, %zmm2, %zmm17, %zmm193010x62 0xe1 0xf5 0x50 0x5d 0xda302 303# Ignore EVEX L'L bits.304# CHECK: vminpd  {sae}, %zmm2, %zmm17, %zmm193050x62 0xe1 0xf5 0x70 0x5d 0xda306 307# CHECK: vcmppd  $127, {sae}, %zmm27, %zmm11, %k43080x62 0x91 0xa5 0x18 0xc2 0xe3 0x7f309 310# CHECK: vrsqrt28pd {sae}, %zmm2, %zmm173110x62 0xe2 0xfd 0x18 0xcc 0xca312 313#####################################################314#                 ROUNDING CONTROL                  #315#####################################################316 317# Verify all rounding modes work.318 319# CHECK: vaddps {rn-sae}, %zmm2, %zmm17, %zmm193200x62 0xe1 0x74 0x10 0x58 0xda321 322# CHECK: vaddps {rd-sae}, %zmm2, %zmm17, %zmm193230x62 0xe1 0x74 0x30 0x58 0xda324 325# CHECK: vaddps {ru-sae}, %zmm2, %zmm17, %zmm193260x62 0xe1 0x74 0x50 0x58 0xda327 328# CHECK: vaddps {rz-sae}, %zmm2, %zmm17, %zmm193290x62 0xe1 0x74 0x70 0x58 0xda330 331# CHECK: vmulss {rn-sae}, %xmm2, %xmm17, %xmm193320x62 0xe1 0x76 0x10 0x59 0xda333 334# CHECK: vmulss {rd-sae}, %xmm2, %xmm17, %xmm193350x62 0xe1 0x76 0x30 0x59 0xda336 337# CHECK: vmulss {ru-sae}, %xmm2, %xmm17, %xmm193380x62 0xe1 0x76 0x50 0x59 0xda339 340# CHECK: vmulss {rz-sae}, %xmm2, %xmm17, %xmm193410x62 0xe1 0x76 0x70 0x59 0xda342 343# CHECK: vscalefpd {rn-sae}, %zmm2, %zmm17, %zmm193440x62 0xe2 0xf5 0x10 0x2c 0xda345 346# CHECK: vscalefpd {rd-sae}, %zmm2, %zmm17, %zmm193470x62 0xe2 0xf5 0x30 0x2c 0xda348 349# CHECK: vscalefpd {ru-sae}, %zmm2, %zmm17, %zmm193500x62 0xe2 0xf5 0x50 0x2c 0xda351 352# CHECK: vscalefpd {rz-sae}, %zmm2, %zmm17, %zmm193530x62 0xe2 0xf5 0x70 0x2c 0xda354 355# CHECK: vcvtqq2ps {rd-sae}, %zmm2, %ymm173560x62 0xe1 0xfc 0x38 0x5b 0xca357 358# CHECK: vsqrtpd {rd-sae}, %zmm2, %zmm173590x62 0xe1 0xfd 0x38 0x51 0xca360