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