1 # RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 -mcpu=knl | FileCheck %s 2 # RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 -mcpu=skx | FileCheck --check-prefix=CHECK-SKX %s 3 4 # CHECK: vpbroadcastd %xmm18, %zmm28 {%k7} {z} 5 0x62 0x22 0x7d 0xcf 0x58 0xe2 6 7 # CHECK: vbroadcastss (%rsp), %zmm28 8 0x62 0x62 0x7d 0x48 0x18 0x24 0x24 9 10 # CHECK: vblendmpd (%rsi), %zmm2, %zmm8 {%k7} 11 0x62 0x72 0xed 0x4f 0x65 0x06 12 13 # CHECK: vpermpd (%rsi,%r10,4), %zmm2, %zmm8 14 0x62 0x32 0xed 0x48 0x16 0x04 0x96 15 16 # CHECK: vpbroadcastmw2d %k2, %zmm8 17 0x62 0x72 0x7e 0x48 0x3a 0xc2 18 19 # CHECK-SKX: vpbroadcastmw2d %k2, %xmm8 20 0x62 0x72 0x7e 0x08 0x3a 0xc2 21 22 # CHECK-SKX: vpbroadcastmw2d %k2, %ymm8 23 0x62 0x72 0x7e 0x28 0x3a 0xc2 24 25 # CHECK: vpbroadcastq (%r9,%rax), %zmm28 26 0x62 0x42 0xfd 0x48 0x59 0x24 0x01 27 28 # CHECK: vbroadcastss %xmm0, %zmm1 29 0x62 0xf2 0x7d 0x48 0x18 0xc8 30 31 # CHECK: vextracti32x4 $4, %zmm0, (%r10) 32 0x62 0xd3 0x7d 0x48 0x39 0x02 0x04 33 34 # CHECK: vextracti32x4 $4, %zmm0, %xmm1 35 0x62 0xf3 0x7d 0x48 0x39 0xc1 0x04 36 37 # CHECK: vinserti32x4 $1, %xmm21, %zmm5, %zmm17 38 0x62 0xa3 0x55 0x48 0x38 0xcd 0x01 39 40 # CHECK: vmovaps %zmm21, %zmm5 {%k3} 41 0x62 0xb1 0x7c 0x4b 0x28 0xed 42 43 # CHECK: vgatherdps (%rsi,%zmm0,4), %zmm1 {%k2} 44 0x62 0xf2 0x7d 0x4a 0x92 0x0c 0x86 45 46 # CHECK: vgatherdpd (%rsi,%ymm0,4), %zmm1 {%k2} 47 0x62 0xf2 0xfd 0x4a 0x92 0x0c 0x86 48 49 # CHECK: vpslld $16, %zmm21, %zmm22 50 0x62 0xb1 0x4d 0x40 0x72 0xf5 0x10 51 52 # CHECK: vpord %zmm22, %zmm21, %zmm23 53 0x62 0xa1 0x55 0x40 0xeb 0xfe 54 55 ##################################################### 56 # MASK INSTRUCTIONS # 57 ##################################################### 58 59 # CHECK: kshiftlw $3, %k1, %k2 60 0xc4 0xe3 0xf9 0x32 0xd1 0x03 61 62 # CHECK: kmovw (%rdi), %k1 63 0xc5 0xf8 0x90 0x0f 64 65 # CHECK: kmovw %k1, %eax 66 0xc5 0xf8 0x93 0xc1 67 68 # CHECK: kandw %k1, %k2, %k3 69 0xc5 0xec 0x41 0xd9 70 71 # CHECK: kmovw %k5, %k1 72 0xc5 0xf8 0x90 0xcd 73 74 ##################################################### 75 # COMPRESSED DISPLACEMENT # 76 ##################################################### 77 78 # TupleType = FVM 79 # CHECK: vmovdqu32 %zmm0, -448(%rcx) 80 0x62 0xf1 0x7e 0x48 0x7f 0x41 0xf9 81 82 # TupleType = T1S, 64-bit eltsize 83 # CHECK: vaddsd 256(%rdx), %xmm0, %xmm16 84 0x62 0xe1 0xff 0x08 0x58 0x42 0x20 85 86 # TupleType = T1S, 32-bit eltsize 87 # CHECK: vaddss 256(%rdx), %xmm0, %xmm16 88 0x62 0xe1 0x7e 0x08 0x58 0x42 0x40 89 90 # TupleType = FV 91 # CHECK: vaddpd 256(%rdx), %zmm0, %zmm16 92 0x62 0xe1 0xfd 0x48 0x58 0x42 0x04 93 94 # TupleType = FV, broadcast, 64-bit eltsize 95 # CHECK: vaddpd 256(%rdx){1to8}, %zmm0, %zmm16 96 0x62 0xe1 0xfd 0x58 0x58 0x42 0x20 97 98 # TupleType = FV, broadcast, 32-bit eltsize 99 # CHECK: vaddps 256(%rdx){1to16}, %zmm0, %zmm16 100 0x62 0xe1 0x7c 0x58 0x58 0x42 0x40 101 102 # TupleType = T4 103 # CHECK: vbroadcasti32x4 256(%rdx), %zmm16 104 0x62 0xe2 0x7d 0x48 0x5a 0x42 0x10 105 106 # Cases where we can't use cdisp8 107 # CHECK: vaddss 255(%rdx), %xmm0, %xmm16 108 0x62 0xe1 0x7e 0x08 0x58 0x82 0xff 0x00 0x00 0x00 109 110 # CHECK: vaddss 1024(%rdx), %xmm0, %xmm16 111 0x62 0xe1 0x7e 0x08 0x58 0x82 0x00 0x04 0x00 0x00 112 113 # CHECK: vpcmpeqd %zmm10, %zmm25, %k5 114 0x62 0xd3 0x35 0x40 0x1f 0xea 0x0 115 116 # CHECK: vpcmpltd %zmm10, %zmm25, %k5 117 0x62 0xd3 0x35 0x40 0x1f 0xea 0x1 118 119 # CHECK: vpcmpled %zmm10, %zmm25, %k5 120 0x62 0xd3 0x35 0x40 0x1f 0xea 0x2 121 122 # CHECK: vpcmpd $3, %zmm10, %zmm25, %k5 123 0x62 0xd3 0x35 0x40 0x1f 0xea 0x3 124 125 # CHECK: vpcmpneqd %zmm10, %zmm25, %k5 126 0x62 0xd3 0x35 0x40 0x1f 0xea 0x4 127 128 # CHECK: vpcmpnltd %zmm10, %zmm25, %k5 129 0x62 0xd3 0x35 0x40 0x1f 0xea 0x5 130 131 # CHECK: vpcmpnled %zmm10, %zmm25, %k5 132 0x62 0xd3 0x35 0x40 0x1f 0xea 0x6 133 134 # CHECK: vpcmpd $7, %zmm10, %zmm25, %k5 135 0x62 0xd3 0x35 0x40 0x1f 0xea 0x7 136 137 # CHECK: vpcmpd $8, %zmm10, %zmm25, %k5 138 0x62 0xd3 0x35 0x40 0x1f 0xea 0x8 139 140 # CHECK: vcmppd $127,{sae}, %zmm27, %zmm11, %k4 141 0x62 0x91 0xa5 0x58 0xc2 0xe3 0x7f 142