1# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s 2 3## R bit 4 5# CHECK: lea r16d, [rax] 6# CHECK: encoding: [0xd5,0x40,0x8d,0x00] 7 lea r16d, [rax] 8 9# CHECK: lea r17d, [rax] 10# CHECK: encoding: [0xd5,0x40,0x8d,0x08] 11 lea r17d, [rax] 12 13# CHECK: lea r18d, [rax] 14# CHECK: encoding: [0xd5,0x40,0x8d,0x10] 15 lea r18d, [rax] 16 17# CHECK: lea r19d, [rax] 18# CHECK: encoding: [0xd5,0x40,0x8d,0x18] 19 lea r19d, [rax] 20 21# CHECK: lea r20d, [rax] 22# CHECK: encoding: [0xd5,0x40,0x8d,0x20] 23 lea r20d, [rax] 24 25# CHECK: lea r21d, [rax] 26# CHECK: encoding: [0xd5,0x40,0x8d,0x28] 27 lea r21d, [rax] 28 29# CHECK: lea r22d, [rax] 30# CHECK: encoding: [0xd5,0x40,0x8d,0x30] 31 lea r22d, [rax] 32 33# CHECK: lea r23d, [rax] 34# CHECK: encoding: [0xd5,0x40,0x8d,0x38] 35 lea r23d, [rax] 36 37# CHECK: lea r24d, [rax] 38# CHECK: encoding: [0xd5,0x44,0x8d,0x00] 39 lea r24d, [rax] 40 41# CHECK: lea r25d, [rax] 42# CHECK: encoding: [0xd5,0x44,0x8d,0x08] 43 lea r25d, [rax] 44 45# CHECK: lea r26d, [rax] 46# CHECK: encoding: [0xd5,0x44,0x8d,0x10] 47 lea r26d, [rax] 48 49# CHECK: lea r27d, [rax] 50# CHECK: encoding: [0xd5,0x44,0x8d,0x18] 51 lea r27d, [rax] 52 53# CHECK: lea r28d, [rax] 54# CHECK: encoding: [0xd5,0x44,0x8d,0x20] 55 lea r28d, [rax] 56 57# CHECK: lea r29d, [rax] 58# CHECK: encoding: [0xd5,0x44,0x8d,0x28] 59 lea r29d, [rax] 60 61# CHECK: lea r30d, [rax] 62# CHECK: encoding: [0xd5,0x44,0x8d,0x30] 63 lea r30d, [rax] 64 65# CHECK: lea r31d, [rax] 66# CHECK: encoding: [0xd5,0x44,0x8d,0x38] 67 lea r31d, [rax] 68 69## X bit 70 71# CHECK: lea eax, [1*r16] 72# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x05,0x00,0x00,0x00,0x00] 73 lea eax, [1*r16] 74 75# CHECK: lea eax, [1*r17] 76# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00] 77 lea eax, [1*r17] 78 79# CHECK: lea eax, [1*r18] 80# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x15,0x00,0x00,0x00,0x00] 81 lea eax, [1*r18] 82 83# CHECK: lea eax, [1*r19] 84# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00] 85 lea eax, [1*r19] 86 87# CHECK: lea eax, [1*r20] 88# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x25,0x00,0x00,0x00,0x00] 89 lea eax, [1*r20] 90 91# CHECK: lea eax, [1*r21] 92# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00] 93 lea eax, [1*r21] 94 95# CHECK: lea eax, [1*r22] 96# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x35,0x00,0x00,0x00,0x00] 97 lea eax, [1*r22] 98 99# CHECK: lea eax, [1*r23] 100# CHECK: encoding: [0xd5,0x20,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00] 101 lea eax, [1*r23] 102 103# CHECK: lea eax, [1*r24] 104# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x05,0x00,0x00,0x00,0x00] 105 lea eax, [1*r24] 106 107# CHECK: lea eax, [1*r25] 108# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x0d,0x00,0x00,0x00,0x00] 109 lea eax, [1*r25] 110 111# CHECK: lea eax, [1*r26] 112# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x15,0x00,0x00,0x00,0x00] 113 lea eax, [1*r26] 114 115# CHECK: lea eax, [1*r27] 116# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x1d,0x00,0x00,0x00,0x00] 117 lea eax, [1*r27] 118 119# CHECK: lea eax, [1*r28] 120# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x25,0x00,0x00,0x00,0x00] 121 lea eax, [1*r28] 122 123# CHECK: lea eax, [1*r29] 124# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x2d,0x00,0x00,0x00,0x00] 125 lea eax, [1*r29] 126 127# CHECK: lea eax, [1*r30] 128# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x35,0x00,0x00,0x00,0x00] 129 lea eax, [1*r30] 130 131# CHECK: lea eax, [1*r31] 132# CHECK: encoding: [0xd5,0x22,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00] 133 lea eax, [1*r31] 134 135## B bit 136 137# CHECK: lea eax, [r16] 138# CHECK: encoding: [0xd5,0x10,0x8d,0x00] 139 lea eax, [r16] 140 141# CHECK: lea eax, [r17] 142# CHECK: encoding: [0xd5,0x10,0x8d,0x01] 143 lea eax, [r17] 144 145# CHECK: lea eax, [r18] 146# CHECK: encoding: [0xd5,0x10,0x8d,0x02] 147 lea eax, [r18] 148 149# CHECK: lea eax, [r19] 150# CHECK: encoding: [0xd5,0x10,0x8d,0x03] 151 lea eax, [r19] 152 153# CHECK: lea eax, [r20] 154# CHECK: encoding: [0xd5,0x10,0x8d,0x04,0x24] 155 lea eax, [r20] 156 157# CHECK: lea eax, [r21] 158# CHECK: encoding: [0xd5,0x10,0x8d,0x45,0x00] 159 lea eax, [r21] 160 161# CHECK: lea eax, [r22] 162# CHECK: encoding: [0xd5,0x10,0x8d,0x06] 163 lea eax, [r22] 164 165# CHECK: lea eax, [r23] 166# CHECK: encoding: [0xd5,0x10,0x8d,0x07] 167 lea eax, [r23] 168 169# CHECK: lea eax, [r24] 170# CHECK: encoding: [0xd5,0x11,0x8d,0x00] 171 lea eax, [r24] 172 173# CHECK: lea eax, [r25] 174# CHECK: encoding: [0xd5,0x11,0x8d,0x01] 175 lea eax, [r25] 176 177# CHECK: lea eax, [r26] 178# CHECK: encoding: [0xd5,0x11,0x8d,0x02] 179 lea eax, [r26] 180 181# CHECK: lea eax, [r27] 182# CHECK: encoding: [0xd5,0x11,0x8d,0x03] 183 lea eax, [r27] 184 185# CHECK: lea eax, [r28] 186# CHECK: encoding: [0xd5,0x11,0x8d,0x04,0x24] 187 lea eax, [r28] 188 189# CHECK: lea eax, [r29] 190# CHECK: encoding: [0xd5,0x11,0x8d,0x45,0x00] 191 lea eax, [r29] 192 193# CHECK: lea eax, [r30] 194# CHECK: encoding: [0xd5,0x11,0x8d,0x06] 195 lea eax, [r30] 196 197# CHECK: lea eax, [r31] 198# CHECK: encoding: [0xd5,0x11,0x8d,0x07] 199 lea eax, [r31] 200 201## SIB 202 203# CHECK: lea eax, [r20 + 1] 204# CHECK: encoding: [0xd5,0x10,0x8d,0x44,0x24,0x01] 205 lea eax, [r20 + 1] 206 207# CHECK: lea eax, [r28 + 1] 208# CHECK: encoding: [0xd5,0x11,0x8d,0x44,0x24,0x01] 209 lea eax, [r28 + 1] 210 211# CHECK: lea eax, [r20 + 129] 212# CHECK: encoding: [0xd5,0x10,0x8d,0x84,0x24,0x81,0x00,0x00,0x00] 213 lea eax, [r20 + 129] 214 215# CHECK: lea eax, [r28 + 129] 216# CHECK: encoding: [0xd5,0x11,0x8d,0x84,0x24,0x81,0x00,0x00,0x00] 217 lea eax, [r28 + 129] 218 219## W bit 220 221# CHECK: lea r16, [rax] 222# CHECK: encoding: [0xd5,0x48,0x8d,0x00] 223 lea r16, [rax] 224 225# CHECK: lea rax, [r16] 226# CHECK: encoding: [0xd5,0x18,0x8d,0x00] 227 lea rax, [r16] 228 229# CHECK: lea rax, [1*r16] 230# CHECK: encoding: [0xd5,0x28,0x8d,0x04,0x05,0x00,0x00,0x00,0x00] 231 lea rax, [1*r16] 232 233## M bit 234 235# CHECK: imul r16d, eax 236# CHECK: encoding: [0xd5,0xc0,0xaf,0xc0] 237 imul r16d, eax 238