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