1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s 2 3## MRMDestMem 4 5# CHECK: vextractf32x4 $1, %zmm0, (%r16,%r17) 6# CHECK: encoding: [0x62,0xfb,0x79,0x48,0x19,0x04,0x08,0x01] 7 vextractf32x4 $1, %zmm0, (%r16,%r17) 8 9# CHECK: addq %r16, 123(%r17), %r18 10# CHECK: encoding: [0x62,0xec,0xec,0x10,0x01,0x41,0x7b] 11 addq %r16, 123(%r17), %r18 12 13## MRMDestMemCC 14 15# CHECK: cfcmovbq %r16, 123(%r17,%r18,4) 16# CHECK: encoding: [0x62,0xec,0xf8,0x0c,0x42,0x44,0x91,0x7b] 17 cfcmovbq %r16, 123(%r17,%r18,4) 18 19## MRMSrcMem 20 21# CHECK: vbroadcasti32x4 (%r16,%r17), %zmm0 22# CHECK: encoding: [0x62,0xfa,0x79,0x48,0x5a,0x04,0x08] 23 vbroadcasti32x4 (%r16,%r17), %zmm0 24 25# CHECK: subq 123(%r16), %r17, %r18 26# CHECK: encoding: [0x62,0xec,0xec,0x10,0x2b,0x48,0x7b] 27 subq 123(%r16), %r17, %r18 28 29## MRMSrcMemCC 30 31# CHECK: cfcmovbq 123(%r16,%r17,4), %r18 32# CHECK: encoding: [0x62,0xec,0xf8,0x08,0x42,0x54,0x88,0x7b] 33 cfcmovbq 123(%r16,%r17,4), %r18 34 35# CHECK: cfcmovbq 123(%r16,%r17,4), %r18, %r19 36# CHECK: encoding: [0x62,0xec,0xe0,0x14,0x42,0x54,0x88,0x7b] 37 cfcmovbq 123(%r16,%r17,4), %r18, %r19 38 39## MRM0m 40 41# CHECK: vprorq $0, (%r16,%r17), %zmm0 42# CHECK: encoding: [0x62,0xf9,0xf9,0x48,0x72,0x04,0x08,0x00] 43 vprorq $0, (%r16,%r17), %zmm0 44 45# CHECK: addq $127, 123(%r16), %r17 46# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x40,0x7b,0x7f] 47 addq $127, 123(%r16), %r17 48 49## MRM1m 50 51# CHECK: vprolq $0, (%r16,%r17), %zmm0 52# CHECK: encoding: [0x62,0xf9,0xf9,0x48,0x72,0x0c,0x08,0x00] 53 vprolq $0, (%r16,%r17), %zmm0 54 55# CHECK: orq $127, 123(%r16), %r17 56# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x48,0x7b,0x7f] 57 orq $127, 123(%r16), %r17 58 59## MRM2m 60 61# CHECK: vpsrlq $0, (%r16,%r17), %zmm0 62# CHECK: encoding: [0x62,0xf9,0xf9,0x48,0x73,0x14,0x08,0x00] 63 vpsrlq $0, (%r16,%r17), %zmm0 64 65# CHECK: adcq $127, 123(%r16), %r17 66# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x50,0x7b,0x7f] 67 adcq $127, 123(%r16), %r17 68 69## MRM3m 70 71# CHECK: vpsrldq $0, (%r16,%r17), %zmm0 72# CHECK: encoding: [0x62,0xf9,0x79,0x48,0x73,0x1c,0x08,0x00] 73 vpsrldq $0, (%r16,%r17), %zmm0 74 75# CHECK: sbbq $127, 123(%r16), %r17 76# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x58,0x7b,0x7f] 77 sbbq $127, 123(%r16), %r17 78 79## MRM4m 80 81# CHECK: vpsraq $0, (%r16,%r17), %zmm0 82# CHECK: encoding: [0x62,0xf9,0xf9,0x48,0x72,0x24,0x08,0x00] 83 vpsraq $0, (%r16,%r17), %zmm0 84 85# CHECK: andq $127, 123(%r16), %r17 86# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x60,0x7b,0x7f] 87 andq $127, 123(%r16), %r17 88 89## MRM5m 90 91# CHECK: vscatterpf0dps (%r16,%zmm0) {%k1} 92# CHECK: encoding: [0x62,0xfa,0x7d,0x49,0xc6,0x2c,0x00] 93 vscatterpf0dps (%r16,%zmm0) {%k1} 94 95# CHECK: subq $127, 123(%r16), %r17 96# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x68,0x7b,0x7f] 97 subq $127, 123(%r16), %r17 98 99## MRM6m 100 101# CHECK: vpsllq $0, (%r16,%r17), %zmm0 102# CHECK: encoding: [0x62,0xf9,0xf9,0x48,0x73,0x34,0x08,0x00] 103 vpsllq $0, (%r16,%r17), %zmm0 104 105# CHECK: xorq $127, 123(%r16), %r17 106# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0x70,0x7b,0x7f] 107 xorq $127, 123(%r16), %r17 108 109## MRM7m 110 111# CHECK: vpslldq $0, (%r16,%r17), %zmm0 112# CHECK: encoding: [0x62,0xf9,0x79,0x48,0x73,0x3c,0x08,0x00] 113 vpslldq $0, (%r16,%r17), %zmm0 114 115# CHECK: sarq $123, 291(%r16,%r17), %r18 116# CHECK: encoding: [0x62,0xfc,0xe8,0x10,0xc1,0xbc,0x08,0x23,0x01,0x00,0x00,0x7b] 117 sarq $123, 291(%r16,%r17), %r18 118 119## MRMDestMem4VOp3CC 120 121# CHECK: cmpbexadd %r18d, %r22d, 291(%r28,%r29,4) 122# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xe6,0xb4,0xac,0x23,0x01,0x00,0x00] 123 cmpbexadd %r18d, %r22d, 291(%r28,%r29,4) 124 125## MRMSrcMem4VOp3 126 127# CHECK: bzhiq %r19, 291(%r28,%r29,4), %r23 128# CHECK: encoding: [0x62,0x8a,0xe0,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00] 129 bzhiq %r19, 291(%r28,%r29,4), %r23 130 131## MRMDestReg 132 133# CHECK: vextractps $1, %xmm16, %r16d 134# CHECK: encoding: [0x62,0xeb,0x7d,0x08,0x17,0xc0,0x01] 135 vextractps $1, %xmm16, %r16d 136 137# CHECK: {nf} addq %r16, %r17 138# CHECK: encoding: [0x62,0xec,0xfc,0x0c,0x01,0xc1] 139 {nf} addq %r16, %r17 140 141## MRMDestRegCC 142 143# CHECK: cfcmovbq %r16, %r17 144# CHECK: encoding: [0x62,0xec,0xfc,0x0c,0x42,0xc1] 145 cfcmovbq %r16, %r17 146 147## MRMSrcReg 148 149# CHECK: mulxq %r16, %r17, %r18 150# CHECK: encoding: [0x62,0xea,0xf7,0x00,0xf6,0xd0] 151 mulxq %r16, %r17, %r18 152 153## MRMSrcRegCC 154 155# CHECK: cfcmovbq %r16, %r17, %r18 156# CHECK: encoding: [0x62,0xec,0xec,0x14,0x42,0xc8] 157 cfcmovbq %r16, %r17, %r18 158 159## MRMSrcReg4VOp3 160 161# CHECK: bzhiq %r19, %r23, %r27 162# CHECK: encoding: [0x62,0x6a,0xe4,0x00,0xf5,0xdf] 163 bzhiq %r19, %r23, %r27 164 165## MRM0r 166 167# CHECK: addq $127, %r16, %r17 168# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xc0,0x7f] 169 addq $127, %r16, %r17 170 171## MRM1r 172 173# CHECK: orq $127, %r16, %r17 174# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xc8,0x7f] 175 orq $127, %r16, %r17 176 177## MRM2r 178 179# CHECK: adcq $127, %r16, %r17 180# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xd0,0x7f] 181 adcq $127, %r16, %r17 182 183## MRM3r 184 185# CHECK: sbbq $127, %r16, %r17 186# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xd8,0x7f] 187 sbbq $127, %r16, %r17 188 189## MRM4r 190 191# CHECK: andq $127, %r16, %r17 192# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xe0,0x7f] 193 andq $127, %r16, %r17 194 195## MRM5r 196 197# CHECK: subq $127, %r16, %r17 198# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xe8,0x7f] 199 subq $127, %r16, %r17 200 201## MRM6r 202 203# CHECK: xorq $127, %r16, %r17 204# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0x83,0xf0,0x7f] 205 xorq $127, %r16, %r17 206 207## MRM7r 208 209# CHECK: sarq $123, %r16, %r17 210# CHECK: encoding: [0x62,0xfc,0xf4,0x10,0xc1,0xf8,0x7b] 211 sarq $123, %r16, %r17 212 213## MRMXrCC 214# CHECK: setzuo %r16b 215# CHECK: encoding: [0x62,0xfc,0x7f,0x18,0x40,0xc0] 216 setzuo %r16b 217 218## MRMXmCC 219# CHECK: setzuo (%r16,%r17) 220# CHECK: encoding: [0x62,0xfc,0x7b,0x18,0x40,0x04,0x08] 221 setzuo (%r16,%r17) 222 223## NoCD8 224 225# CHECK: {nf} negq 123(%r16) 226# CHECK: encoding: [0x62,0xfc,0xfc,0x0c,0xf7,0x58,0x7b] 227 {nf} negq 123(%r16) 228 229# CHECK: {evex} notq 123(%r16) 230# CHECK: encoding: [0x62,0xfc,0xfc,0x08,0xf7,0x50,0x7b] 231 {evex} notq 123(%r16) 232