1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s 2 3// CHECK: vaesdec 485498096, %xmm15, %xmm15 4// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 5vaesdec 485498096, %xmm15, %xmm15 6 7// CHECK: vaesdec 485498096, %xmm6, %xmm6 8// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x34,0x25,0xf0,0x1c,0xf0,0x1c] 9vaesdec 485498096, %xmm6, %xmm6 10 11// CHECK: vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15 12// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0x40] 13vaesdec 64(%rdx,%rax,4), %xmm15, %xmm15 14 15// CHECK: vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15 16// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x82,0xc0] 17vaesdec -64(%rdx,%rax,4), %xmm15, %xmm15 18 19// CHECK: vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6 20// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0x40] 21vaesdec 64(%rdx,%rax,4), %xmm6, %xmm6 22 23// CHECK: vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6 24// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x82,0xc0] 25vaesdec -64(%rdx,%rax,4), %xmm6, %xmm6 26 27// CHECK: vaesdec 64(%rdx,%rax), %xmm15, %xmm15 28// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7c,0x02,0x40] 29vaesdec 64(%rdx,%rax), %xmm15, %xmm15 30 31// CHECK: vaesdec 64(%rdx,%rax), %xmm6, %xmm6 32// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x74,0x02,0x40] 33vaesdec 64(%rdx,%rax), %xmm6, %xmm6 34 35// CHECK: vaesdec 64(%rdx), %xmm15, %xmm15 36// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x7a,0x40] 37vaesdec 64(%rdx), %xmm15, %xmm15 38 39// CHECK: vaesdec 64(%rdx), %xmm6, %xmm6 40// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x72,0x40] 41vaesdec 64(%rdx), %xmm6, %xmm6 42 43// CHECK: vaesdeclast 485498096, %xmm15, %xmm15 44// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 45vaesdeclast 485498096, %xmm15, %xmm15 46 47// CHECK: vaesdeclast 485498096, %xmm6, %xmm6 48// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c] 49vaesdeclast 485498096, %xmm6, %xmm6 50 51// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15 52// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0x40] 53vaesdeclast 64(%rdx,%rax,4), %xmm15, %xmm15 54 55// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15 56// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x82,0xc0] 57vaesdeclast -64(%rdx,%rax,4), %xmm15, %xmm15 58 59// CHECK: vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6 60// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0x40] 61vaesdeclast 64(%rdx,%rax,4), %xmm6, %xmm6 62 63// CHECK: vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6 64// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x82,0xc0] 65vaesdeclast -64(%rdx,%rax,4), %xmm6, %xmm6 66 67// CHECK: vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15 68// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7c,0x02,0x40] 69vaesdeclast 64(%rdx,%rax), %xmm15, %xmm15 70 71// CHECK: vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6 72// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x74,0x02,0x40] 73vaesdeclast 64(%rdx,%rax), %xmm6, %xmm6 74 75// CHECK: vaesdeclast 64(%rdx), %xmm15, %xmm15 76// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x7a,0x40] 77vaesdeclast 64(%rdx), %xmm15, %xmm15 78 79// CHECK: vaesdeclast 64(%rdx), %xmm6, %xmm6 80// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x72,0x40] 81vaesdeclast 64(%rdx), %xmm6, %xmm6 82 83// CHECK: vaesdeclast (%rdx), %xmm15, %xmm15 84// CHECK: encoding: [0xc4,0x62,0x01,0xdf,0x3a] 85vaesdeclast (%rdx), %xmm15, %xmm15 86 87// CHECK: vaesdeclast (%rdx), %xmm6, %xmm6 88// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0x32] 89vaesdeclast (%rdx), %xmm6, %xmm6 90 91// CHECK: vaesdeclast %xmm15, %xmm15, %xmm15 92// CHECK: encoding: [0xc4,0x42,0x01,0xdf,0xff] 93vaesdeclast %xmm15, %xmm15, %xmm15 94 95// CHECK: vaesdeclast %xmm6, %xmm6, %xmm6 96// CHECK: encoding: [0xc4,0xe2,0x49,0xdf,0xf6] 97vaesdeclast %xmm6, %xmm6, %xmm6 98 99// CHECK: vaesdec (%rdx), %xmm15, %xmm15 100// CHECK: encoding: [0xc4,0x62,0x01,0xde,0x3a] 101vaesdec (%rdx), %xmm15, %xmm15 102 103// CHECK: vaesdec (%rdx), %xmm6, %xmm6 104// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0x32] 105vaesdec (%rdx), %xmm6, %xmm6 106 107// CHECK: vaesdec %xmm15, %xmm15, %xmm15 108// CHECK: encoding: [0xc4,0x42,0x01,0xde,0xff] 109vaesdec %xmm15, %xmm15, %xmm15 110 111// CHECK: vaesdec %xmm6, %xmm6, %xmm6 112// CHECK: encoding: [0xc4,0xe2,0x49,0xde,0xf6] 113vaesdec %xmm6, %xmm6, %xmm6 114 115// CHECK: vaesenc 485498096, %xmm15, %xmm15 116// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 117vaesenc 485498096, %xmm15, %xmm15 118 119// CHECK: vaesenc 485498096, %xmm6, %xmm6 120// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x34,0x25,0xf0,0x1c,0xf0,0x1c] 121vaesenc 485498096, %xmm6, %xmm6 122 123// CHECK: vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15 124// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0x40] 125vaesenc 64(%rdx,%rax,4), %xmm15, %xmm15 126 127// CHECK: vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15 128// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x82,0xc0] 129vaesenc -64(%rdx,%rax,4), %xmm15, %xmm15 130 131// CHECK: vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6 132// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0x40] 133vaesenc 64(%rdx,%rax,4), %xmm6, %xmm6 134 135// CHECK: vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6 136// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x82,0xc0] 137vaesenc -64(%rdx,%rax,4), %xmm6, %xmm6 138 139// CHECK: vaesenc 64(%rdx,%rax), %xmm15, %xmm15 140// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7c,0x02,0x40] 141vaesenc 64(%rdx,%rax), %xmm15, %xmm15 142 143// CHECK: vaesenc 64(%rdx,%rax), %xmm6, %xmm6 144// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x74,0x02,0x40] 145vaesenc 64(%rdx,%rax), %xmm6, %xmm6 146 147// CHECK: vaesenc 64(%rdx), %xmm15, %xmm15 148// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x7a,0x40] 149vaesenc 64(%rdx), %xmm15, %xmm15 150 151// CHECK: vaesenc 64(%rdx), %xmm6, %xmm6 152// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x72,0x40] 153vaesenc 64(%rdx), %xmm6, %xmm6 154 155// CHECK: vaesenclast 485498096, %xmm15, %xmm15 156// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 157vaesenclast 485498096, %xmm15, %xmm15 158 159// CHECK: vaesenclast 485498096, %xmm6, %xmm6 160// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x34,0x25,0xf0,0x1c,0xf0,0x1c] 161vaesenclast 485498096, %xmm6, %xmm6 162 163// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15 164// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0x40] 165vaesenclast 64(%rdx,%rax,4), %xmm15, %xmm15 166 167// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15 168// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x82,0xc0] 169vaesenclast -64(%rdx,%rax,4), %xmm15, %xmm15 170 171// CHECK: vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6 172// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0x40] 173vaesenclast 64(%rdx,%rax,4), %xmm6, %xmm6 174 175// CHECK: vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6 176// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x82,0xc0] 177vaesenclast -64(%rdx,%rax,4), %xmm6, %xmm6 178 179// CHECK: vaesenclast 64(%rdx,%rax), %xmm15, %xmm15 180// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7c,0x02,0x40] 181vaesenclast 64(%rdx,%rax), %xmm15, %xmm15 182 183// CHECK: vaesenclast 64(%rdx,%rax), %xmm6, %xmm6 184// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x74,0x02,0x40] 185vaesenclast 64(%rdx,%rax), %xmm6, %xmm6 186 187// CHECK: vaesenclast 64(%rdx), %xmm15, %xmm15 188// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x7a,0x40] 189vaesenclast 64(%rdx), %xmm15, %xmm15 190 191// CHECK: vaesenclast 64(%rdx), %xmm6, %xmm6 192// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x72,0x40] 193vaesenclast 64(%rdx), %xmm6, %xmm6 194 195// CHECK: vaesenclast (%rdx), %xmm15, %xmm15 196// CHECK: encoding: [0xc4,0x62,0x01,0xdd,0x3a] 197vaesenclast (%rdx), %xmm15, %xmm15 198 199// CHECK: vaesenclast (%rdx), %xmm6, %xmm6 200// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0x32] 201vaesenclast (%rdx), %xmm6, %xmm6 202 203// CHECK: vaesenclast %xmm15, %xmm15, %xmm15 204// CHECK: encoding: [0xc4,0x42,0x01,0xdd,0xff] 205vaesenclast %xmm15, %xmm15, %xmm15 206 207// CHECK: vaesenclast %xmm6, %xmm6, %xmm6 208// CHECK: encoding: [0xc4,0xe2,0x49,0xdd,0xf6] 209vaesenclast %xmm6, %xmm6, %xmm6 210 211// CHECK: vaesenc (%rdx), %xmm15, %xmm15 212// CHECK: encoding: [0xc4,0x62,0x01,0xdc,0x3a] 213vaesenc (%rdx), %xmm15, %xmm15 214 215// CHECK: vaesenc (%rdx), %xmm6, %xmm6 216// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0x32] 217vaesenc (%rdx), %xmm6, %xmm6 218 219// CHECK: vaesenc %xmm15, %xmm15, %xmm15 220// CHECK: encoding: [0xc4,0x42,0x01,0xdc,0xff] 221vaesenc %xmm15, %xmm15, %xmm15 222 223// CHECK: vaesenc %xmm6, %xmm6, %xmm6 224// CHECK: encoding: [0xc4,0xe2,0x49,0xdc,0xf6] 225vaesenc %xmm6, %xmm6, %xmm6 226 227// CHECK: vaesimc 485498096, %xmm15 228// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 229vaesimc 485498096, %xmm15 230 231// CHECK: vaesimc 485498096, %xmm6 232// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x34,0x25,0xf0,0x1c,0xf0,0x1c] 233vaesimc 485498096, %xmm6 234 235// CHECK: vaesimc 64(%rdx,%rax,4), %xmm15 236// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0x40] 237vaesimc 64(%rdx,%rax,4), %xmm15 238 239// CHECK: vaesimc -64(%rdx,%rax,4), %xmm15 240// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x82,0xc0] 241vaesimc -64(%rdx,%rax,4), %xmm15 242 243// CHECK: vaesimc 64(%rdx,%rax,4), %xmm6 244// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0x40] 245vaesimc 64(%rdx,%rax,4), %xmm6 246 247// CHECK: vaesimc -64(%rdx,%rax,4), %xmm6 248// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x82,0xc0] 249vaesimc -64(%rdx,%rax,4), %xmm6 250 251// CHECK: vaesimc 64(%rdx,%rax), %xmm15 252// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7c,0x02,0x40] 253vaesimc 64(%rdx,%rax), %xmm15 254 255// CHECK: vaesimc 64(%rdx,%rax), %xmm6 256// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x74,0x02,0x40] 257vaesimc 64(%rdx,%rax), %xmm6 258 259// CHECK: vaesimc 64(%rdx), %xmm15 260// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x7a,0x40] 261vaesimc 64(%rdx), %xmm15 262 263// CHECK: vaesimc 64(%rdx), %xmm6 264// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x72,0x40] 265vaesimc 64(%rdx), %xmm6 266 267// CHECK: vaesimc (%rdx), %xmm15 268// CHECK: encoding: [0xc4,0x62,0x79,0xdb,0x3a] 269vaesimc (%rdx), %xmm15 270 271// CHECK: vaesimc (%rdx), %xmm6 272// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0x32] 273vaesimc (%rdx), %xmm6 274 275// CHECK: vaesimc %xmm15, %xmm15 276// CHECK: encoding: [0xc4,0x42,0x79,0xdb,0xff] 277vaesimc %xmm15, %xmm15 278 279// CHECK: vaesimc %xmm6, %xmm6 280// CHECK: encoding: [0xc4,0xe2,0x79,0xdb,0xf6] 281vaesimc %xmm6, %xmm6 282 283// CHECK: vaeskeygenassist $0, 485498096, %xmm15 284// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00] 285vaeskeygenassist $0, 485498096, %xmm15 286 287// CHECK: vaeskeygenassist $0, 485498096, %xmm6 288// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00] 289vaeskeygenassist $0, 485498096, %xmm6 290 291// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 292// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0x40,0x00] 293vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm15 294 295// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 296// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x82,0xc0,0x00] 297vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm15 298 299// CHECK: vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 300// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0x40,0x00] 301vaeskeygenassist $0, 64(%rdx,%rax,4), %xmm6 302 303// CHECK: vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 304// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x82,0xc0,0x00] 305vaeskeygenassist $0, -64(%rdx,%rax,4), %xmm6 306 307// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm15 308// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7c,0x02,0x40,0x00] 309vaeskeygenassist $0, 64(%rdx,%rax), %xmm15 310 311// CHECK: vaeskeygenassist $0, 64(%rdx,%rax), %xmm6 312// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x74,0x02,0x40,0x00] 313vaeskeygenassist $0, 64(%rdx,%rax), %xmm6 314 315// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm15 316// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x7a,0x40,0x00] 317vaeskeygenassist $0, 64(%rdx), %xmm15 318 319// CHECK: vaeskeygenassist $0, 64(%rdx), %xmm6 320// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x72,0x40,0x00] 321vaeskeygenassist $0, 64(%rdx), %xmm6 322 323// CHECK: vaeskeygenassist $0, (%rdx), %xmm15 324// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x3a,0x00] 325vaeskeygenassist $0, (%rdx), %xmm15 326 327// CHECK: vaeskeygenassist $0, (%rdx), %xmm6 328// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x32,0x00] 329vaeskeygenassist $0, (%rdx), %xmm6 330 331// CHECK: vaeskeygenassist $0, %xmm15, %xmm15 332// CHECK: encoding: [0xc4,0x43,0x79,0xdf,0xff,0x00] 333vaeskeygenassist $0, %xmm15, %xmm15 334 335// CHECK: vaeskeygenassist $0, %xmm6, %xmm6 336// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0xf6,0x00] 337vaeskeygenassist $0, %xmm6, %xmm6 338 339