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