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