1# RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s 2 3## mulx 4 5# CHECK: {evex} mulx r10d, edx, ecx 6# CHECK: encoding: [0x62,0x72,0x6f,0x08,0xf6,0xd1] 7 {evex} mulx r10d, edx, ecx 8 9# CHECK: {evex} mulx r11, r15, r9 10# CHECK: encoding: [0x62,0x52,0x87,0x08,0xf6,0xd9] 11 {evex} mulx r11, r15, r9 12 13# CHECK: {evex} mulx edx, ecx, dword ptr [rax + 4*rbx + 123] 14# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf6,0x54,0x98,0x7b] 15 {evex} mulx edx, ecx, dword ptr [rax + 4*rbx + 123] 16 17# CHECK: {evex} mulx r15, r9, qword ptr [rax + 4*rbx + 123] 18# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf6,0x7c,0x98,0x7b] 19 {evex} mulx r15, r9, qword ptr [rax + 4*rbx + 123] 20 21# CHECK: mulx r26d, r22d, r18d 22# CHECK: encoding: [0x62,0x6a,0x4f,0x00,0xf6,0xd2] 23 mulx r26d, r22d, r18d 24 25# CHECK: mulx r27, r23, r19 26# CHECK: encoding: [0x62,0x6a,0xc7,0x00,0xf6,0xdb] 27 mulx r27, r23, r19 28 29# CHECK: mulx r22d, r18d, dword ptr [r28 + 4*r29 + 291] 30# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf6,0xb4,0xac,0x23,0x01,0x00,0x00] 31 mulx r22d, r18d, dword ptr [r28 + 4*r29 + 291] 32 33# CHECK: mulx r23, r19, qword ptr [r28 + 4*r29 + 291] 34# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf6,0xbc,0xac,0x23,0x01,0x00,0x00] 35 mulx r23, r19, qword ptr [r28 + 4*r29 + 291] 36 37## pdep 38 39# CHECK: {evex} pdep r10d, edx, ecx 40# CHECK: encoding: [0x62,0x72,0x6f,0x08,0xf5,0xd1] 41 {evex} pdep r10d, edx, ecx 42 43# CHECK: {evex} pdep r11, r15, r9 44# CHECK: encoding: [0x62,0x52,0x87,0x08,0xf5,0xd9] 45 {evex} pdep r11, r15, r9 46 47# CHECK: {evex} pdep edx, ecx, dword ptr [rax + 4*rbx + 123] 48# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf5,0x54,0x98,0x7b] 49 {evex} pdep edx, ecx, dword ptr [rax + 4*rbx + 123] 50 51# CHECK: {evex} pdep r15, r9, qword ptr [rax + 4*rbx + 123] 52# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf5,0x7c,0x98,0x7b] 53 {evex} pdep r15, r9, qword ptr [rax + 4*rbx + 123] 54 55# CHECK: pdep r26d, r22d, r18d 56# CHECK: encoding: [0x62,0x6a,0x4f,0x00,0xf5,0xd2] 57 pdep r26d, r22d, r18d 58 59# CHECK: pdep r27, r23, r19 60# CHECK: encoding: [0x62,0x6a,0xc7,0x00,0xf5,0xdb] 61 pdep r27, r23, r19 62 63# CHECK: pdep r22d, r18d, dword ptr [r28 + 4*r29 + 291] 64# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00] 65 pdep r22d, r18d, dword ptr [r28 + 4*r29 + 291] 66 67# CHECK: pdep r23, r19, qword ptr [r28 + 4*r29 + 291] 68# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00] 69 pdep r23, r19, qword ptr [r28 + 4*r29 + 291] 70 71## pext 72 73# CHECK: {evex} pext r10d, edx, ecx 74# CHECK: encoding: [0x62,0x72,0x6e,0x08,0xf5,0xd1] 75 {evex} pext r10d, edx, ecx 76 77# CHECK: {evex} pext r11, r15, r9 78# CHECK: encoding: [0x62,0x52,0x86,0x08,0xf5,0xd9] 79 {evex} pext r11, r15, r9 80 81# CHECK: {evex} pext edx, ecx, dword ptr [rax + 4*rbx + 123] 82# CHECK: encoding: [0x62,0xf2,0x76,0x08,0xf5,0x54,0x98,0x7b] 83 {evex} pext edx, ecx, dword ptr [rax + 4*rbx + 123] 84 85# CHECK: {evex} pext r15, r9, qword ptr [rax + 4*rbx + 123] 86# CHECK: encoding: [0x62,0x72,0xb6,0x08,0xf5,0x7c,0x98,0x7b] 87 {evex} pext r15, r9, qword ptr [rax + 4*rbx + 123] 88 89# CHECK: pext r26d, r22d, r18d 90# CHECK: encoding: [0x62,0x6a,0x4e,0x00,0xf5,0xd2] 91 pext r26d, r22d, r18d 92 93# CHECK: pext r27, r23, r19 94# CHECK: encoding: [0x62,0x6a,0xc6,0x00,0xf5,0xdb] 95 pext r27, r23, r19 96 97# CHECK: pext r22d, r18d, dword ptr [r28 + 4*r29 + 291] 98# CHECK: encoding: [0x62,0x8a,0x6a,0x00,0xf5,0xb4,0xac,0x23,0x01,0x00,0x00] 99 pext r22d, r18d, dword ptr [r28 + 4*r29 + 291] 100 101# CHECK: pext r23, r19, qword ptr [r28 + 4*r29 + 291] 102# CHECK: encoding: [0x62,0x8a,0xe2,0x00,0xf5,0xbc,0xac,0x23,0x01,0x00,0x00] 103 pext r23, r19, qword ptr [r28 + 4*r29 + 291] 104 105## rorx 106 107# CHECK: {evex} rorx edx, ecx, 123 108# CHECK: encoding: [0x62,0xf3,0x7f,0x08,0xf0,0xd1,0x7b] 109 {evex} rorx edx, ecx, 123 110 111# CHECK: {evex} rorx r15, r9, 123 112# CHECK: encoding: [0x62,0x53,0xff,0x08,0xf0,0xf9,0x7b] 113 {evex} rorx r15, r9, 123 114 115# CHECK: {evex} rorx ecx, dword ptr [rax + 4*rbx + 123], 123 116# CHECK: encoding: [0x62,0xf3,0x7f,0x08,0xf0,0x4c,0x98,0x7b,0x7b] 117 {evex} rorx ecx, dword ptr [rax + 4*rbx + 123], 123 118 119# CHECK: {evex} rorx r9, qword ptr [rax + 4*rbx + 123], 123 120# CHECK: encoding: [0x62,0x73,0xff,0x08,0xf0,0x4c,0x98,0x7b,0x7b] 121 {evex} rorx r9, qword ptr [rax + 4*rbx + 123], 123 122 123# CHECK: rorx r22d, r18d, 123 124# CHECK: encoding: [0x62,0xeb,0x7f,0x08,0xf0,0xf2,0x7b] 125 rorx r22d, r18d, 123 126 127# CHECK: rorx r23, r19, 123 128# CHECK: encoding: [0x62,0xeb,0xff,0x08,0xf0,0xfb,0x7b] 129 rorx r23, r19, 123 130 131# CHECK: rorx r18d, dword ptr [r28 + 4*r29 + 291], 123 132# CHECK: encoding: [0x62,0x8b,0x7b,0x08,0xf0,0x94,0xac,0x23,0x01,0x00,0x00,0x7b] 133 rorx r18d, dword ptr [r28 + 4*r29 + 291], 123 134 135# CHECK: rorx r19, qword ptr [r28 + 4*r29 + 291], 123 136# CHECK: encoding: [0x62,0x8b,0xfb,0x08,0xf0,0x9c,0xac,0x23,0x01,0x00,0x00,0x7b] 137 rorx r19, qword ptr [r28 + 4*r29 + 291], 123 138 139## sarx 140 141# CHECK: {evex} sarx r10d, edx, ecx 142# CHECK: encoding: [0x62,0x72,0x76,0x08,0xf7,0xd2] 143 {evex} sarx r10d, edx, ecx 144 145# CHECK: {evex} sarx edx, dword ptr [rax + 4*rbx + 123], ecx 146# CHECK: encoding: [0x62,0xf2,0x76,0x08,0xf7,0x54,0x98,0x7b] 147 {evex} sarx edx, dword ptr [rax + 4*rbx + 123], ecx 148 149# CHECK: {evex} sarx r11, r15, r9 150# CHECK: encoding: [0x62,0x52,0xb6,0x08,0xf7,0xdf] 151 {evex} sarx r11, r15, r9 152 153# CHECK: {evex} sarx r15, qword ptr [rax + 4*rbx + 123], r9 154# CHECK: encoding: [0x62,0x72,0xb6,0x08,0xf7,0x7c,0x98,0x7b] 155 {evex} sarx r15, qword ptr [rax + 4*rbx + 123], r9 156 157# CHECK: sarx r26d, r22d, r18d 158# CHECK: encoding: [0x62,0x6a,0x6e,0x00,0xf7,0xd6] 159 sarx r26d, r22d, r18d 160 161# CHECK: sarx r22d, dword ptr [r28 + 4*r29 + 291], r18d 162# CHECK: encoding: [0x62,0x8a,0x6a,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00] 163 sarx r22d, dword ptr [r28 + 4*r29 + 291], r18d 164 165# CHECK: sarx r27, r23, r19 166# CHECK: encoding: [0x62,0x6a,0xe6,0x00,0xf7,0xdf] 167 sarx r27, r23, r19 168 169# CHECK: sarx r23, qword ptr [r28 + 4*r29 + 291], r19 170# CHECK: encoding: [0x62,0x8a,0xe2,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00] 171 sarx r23, qword ptr [r28 + 4*r29 + 291], r19 172 173## shlx 174 175# CHECK: {evex} shlx r10d, edx, ecx 176# CHECK: encoding: [0x62,0x72,0x75,0x08,0xf7,0xd2] 177 {evex} shlx r10d, edx, ecx 178 179# CHECK: {evex} shlx edx, dword ptr [rax + 4*rbx + 123], ecx 180# CHECK: encoding: [0x62,0xf2,0x75,0x08,0xf7,0x54,0x98,0x7b] 181 {evex} shlx edx, dword ptr [rax + 4*rbx + 123], ecx 182 183# CHECK: {evex} shlx r11, r15, r9 184# CHECK: encoding: [0x62,0x52,0xb5,0x08,0xf7,0xdf] 185 {evex} shlx r11, r15, r9 186 187# CHECK: {evex} shlx r15, qword ptr [rax + 4*rbx + 123], r9 188# CHECK: encoding: [0x62,0x72,0xb5,0x08,0xf7,0x7c,0x98,0x7b] 189 {evex} shlx r15, qword ptr [rax + 4*rbx + 123], r9 190 191# CHECK: shlx r26d, r22d, r18d 192# CHECK: encoding: [0x62,0x6a,0x6d,0x00,0xf7,0xd6] 193 shlx r26d, r22d, r18d 194 195# CHECK: shlx r22d, dword ptr [r28 + 4*r29 + 291], r18d 196# CHECK: encoding: [0x62,0x8a,0x69,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00] 197 shlx r22d, dword ptr [r28 + 4*r29 + 291], r18d 198 199# CHECK: shlx r27, r23, r19 200# CHECK: encoding: [0x62,0x6a,0xe5,0x00,0xf7,0xdf] 201 shlx r27, r23, r19 202 203# CHECK: shlx r23, qword ptr [r28 + 4*r29 + 291], r19 204# CHECK: encoding: [0x62,0x8a,0xe1,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00] 205 shlx r23, qword ptr [r28 + 4*r29 + 291], r19 206 207## shrx 208 209# CHECK: {evex} shrx r10d, edx, ecx 210# CHECK: encoding: [0x62,0x72,0x77,0x08,0xf7,0xd2] 211 {evex} shrx r10d, edx, ecx 212 213# CHECK: {evex} shrx edx, dword ptr [rax + 4*rbx + 123], ecx 214# CHECK: encoding: [0x62,0xf2,0x77,0x08,0xf7,0x54,0x98,0x7b] 215 {evex} shrx edx, dword ptr [rax + 4*rbx + 123], ecx 216 217# CHECK: {evex} shrx r11, r15, r9 218# CHECK: encoding: [0x62,0x52,0xb7,0x08,0xf7,0xdf] 219 {evex} shrx r11, r15, r9 220 221# CHECK: {evex} shrx r15, qword ptr [rax + 4*rbx + 123], r9 222# CHECK: encoding: [0x62,0x72,0xb7,0x08,0xf7,0x7c,0x98,0x7b] 223 {evex} shrx r15, qword ptr [rax + 4*rbx + 123], r9 224 225# CHECK: shrx r26d, r22d, r18d 226# CHECK: encoding: [0x62,0x6a,0x6f,0x00,0xf7,0xd6] 227 shrx r26d, r22d, r18d 228 229# CHECK: shrx r22d, dword ptr [r28 + 4*r29 + 291], r18d 230# CHECK: encoding: [0x62,0x8a,0x6b,0x00,0xf7,0xb4,0xac,0x23,0x01,0x00,0x00] 231 shrx r22d, dword ptr [r28 + 4*r29 + 291], r18d 232 233# CHECK: shrx r27, r23, r19 234# CHECK: encoding: [0x62,0x6a,0xe7,0x00,0xf7,0xdf] 235 shrx r27, r23, r19 236 237# CHECK: shrx r23, qword ptr [r28 + 4*r29 + 291], r19 238# CHECK: encoding: [0x62,0x8a,0xe3,0x00,0xf7,0xbc,0xac,0x23,0x01,0x00,0x00] 239 shrx r23, qword ptr [r28 + 4*r29 + 291], r19 240