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