1// RUN: llvm-mc -triple x86_64-unknown-unknown %s > %t 2> %t.err 2// RUN: FileCheck < %t %s 3// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s 4 5// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24 6// CHECK-STDERR: warning: Destination register should be distinct from source registers 7 vfcmaddcph %zmm24, %zmm23, %zmm24 8 9// CHECK: vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23 10// CHECK-STDERR: warning: Destination register should be distinct from source registers 11 vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23 12 13// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7} 14// CHECK-STDERR: warning: Destination register should be distinct from source registers 15 vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7} 16 17// CHECK: vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 18// CHECK-STDERR: warning: Destination register should be distinct from source registers 19 vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 20 21// CHECK: vfcmaddcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 22// CHECK-STDERR: warning: Destination register should be distinct from source registers 23 vfcmaddcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 24 25// CHECK: vfcmaddcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 26// CHECK-STDERR: warning: Destination register should be distinct from source registers 27 vfcmaddcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 28 29// CHECK: vfcmaddcph (%rip){1to16}, %zmm23, %zmm23 30// CHECK-STDERR: warning: Destination register should be distinct from source registers 31 vfcmaddcph (%rip){1to16}, %zmm23, %zmm23 32 33// CHECK: vfcmaddcph -2048(,%rbp,2), %zmm23, %zmm23 34// CHECK-STDERR: warning: Destination register should be distinct from source registers 35 vfcmaddcph -2048(,%rbp,2), %zmm23, %zmm23 36 37// CHECK: vfcmaddcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 38// CHECK-STDERR: warning: Destination register should be distinct from source registers 39 vfcmaddcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 40 41// CHECK: vfcmaddcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 42// CHECK-STDERR: warning: Destination register should be distinct from source registers 43 vfcmaddcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 44 45// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24 46// CHECK-STDERR: warning: Destination register should be distinct from source registers 47 vfcmaddcsh %xmm24, %xmm23, %xmm24 48 49// CHECK: vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23 50// CHECK-STDERR: warning: Destination register should be distinct from source registers 51 vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23 52 53// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7} 54// CHECK-STDERR: warning: Destination register should be distinct from source registers 55 vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7} 56 57// CHECK: vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 58// CHECK-STDERR: warning: Destination register should be distinct from source registers 59 vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 60 61// CHECK: vfcmaddcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 62// CHECK-STDERR: warning: Destination register should be distinct from source registers 63 vfcmaddcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 64 65// CHECK: vfcmaddcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 66// CHECK-STDERR: warning: Destination register should be distinct from source registers 67 vfcmaddcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 68 69// CHECK: vfcmaddcsh (%rip), %xmm23, %xmm23 70// CHECK-STDERR: warning: Destination register should be distinct from source registers 71 vfcmaddcsh (%rip), %xmm23, %xmm23 72 73// CHECK: vfcmaddcsh -128(,%rbp,2), %xmm23, %xmm23 74// CHECK-STDERR: warning: Destination register should be distinct from source registers 75 vfcmaddcsh -128(,%rbp,2), %xmm23, %xmm23 76 77// CHECK: vfcmaddcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 78// CHECK-STDERR: warning: Destination register should be distinct from source registers 79 vfcmaddcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 80 81// CHECK: vfcmaddcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 82// CHECK-STDERR: warning: Destination register should be distinct from source registers 83 vfcmaddcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 84 85// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24 86// CHECK-STDERR: warning: Destination register should be distinct from source registers 87 vfcmulcph %zmm24, %zmm23, %zmm24 88 89// CHECK: vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23 90// CHECK-STDERR: warning: Destination register should be distinct from source registers 91 vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23 92 93// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24 {%k7} 94// CHECK-STDERR: warning: Destination register should be distinct from source registers 95 vfcmulcph %zmm24, %zmm23, %zmm24 {%k7} 96 97// CHECK: vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 98// CHECK-STDERR: warning: Destination register should be distinct from source registers 99 vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 100 101// CHECK: vfcmulcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 102// CHECK-STDERR: warning: Destination register should be distinct from source registers 103 vfcmulcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 104 105// CHECK: vfcmulcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 106// CHECK-STDERR: warning: Destination register should be distinct from source registers 107 vfcmulcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 108 109// CHECK: vfcmulcph (%rip){1to16}, %zmm23, %zmm23 110// CHECK-STDERR: warning: Destination register should be distinct from source registers 111 vfcmulcph (%rip){1to16}, %zmm23, %zmm23 112 113// CHECK: vfcmulcph -2048(,%rbp,2), %zmm23, %zmm23 114// CHECK-STDERR: warning: Destination register should be distinct from source registers 115 vfcmulcph -2048(,%rbp,2), %zmm23, %zmm23 116 117// CHECK: vfcmulcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 118// CHECK-STDERR: warning: Destination register should be distinct from source registers 119 vfcmulcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 120 121// CHECK: vfcmulcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 122// CHECK-STDERR: warning: Destination register should be distinct from source registers 123 vfcmulcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 124 125// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24 126// CHECK-STDERR: warning: Destination register should be distinct from source registers 127 vfcmulcsh %xmm24, %xmm23, %xmm24 128 129// CHECK: vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23 130// CHECK-STDERR: warning: Destination register should be distinct from source registers 131 vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23 132 133// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7} 134// CHECK-STDERR: warning: Destination register should be distinct from source registers 135 vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7} 136 137// CHECK: vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 138// CHECK-STDERR: warning: Destination register should be distinct from source registers 139 vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 140 141// CHECK: vfcmulcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 142// CHECK-STDERR: warning: Destination register should be distinct from source registers 143 vfcmulcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 144 145// CHECK: vfcmulcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 146// CHECK-STDERR: warning: Destination register should be distinct from source registers 147 vfcmulcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 148 149// CHECK: vfcmulcsh (%rip), %xmm23, %xmm23 150// CHECK-STDERR: warning: Destination register should be distinct from source registers 151 vfcmulcsh (%rip), %xmm23, %xmm23 152 153// CHECK: vfcmulcsh -128(,%rbp,2), %xmm23, %xmm23 154// CHECK-STDERR: warning: Destination register should be distinct from source registers 155 vfcmulcsh -128(,%rbp,2), %xmm23, %xmm23 156 157// CHECK: vfcmulcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 158// CHECK-STDERR: warning: Destination register should be distinct from source registers 159 vfcmulcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 160 161// CHECK: vfcmulcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 162// CHECK-STDERR: warning: Destination register should be distinct from source registers 163 vfcmulcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 164 165// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24 166// CHECK-STDERR: warning: Destination register should be distinct from source registers 167 vfmaddcph %zmm24, %zmm23, %zmm24 168 169// CHECK: vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23 170// CHECK-STDERR: warning: Destination register should be distinct from source registers 171 vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23 172 173// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24 {%k7} 174// CHECK-STDERR: warning: Destination register should be distinct from source registers 175 vfmaddcph %zmm24, %zmm23, %zmm24 {%k7} 176 177// CHECK: vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 178// CHECK-STDERR: warning: Destination register should be distinct from source registers 179 vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 180 181// CHECK: vfmaddcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 182// CHECK-STDERR: warning: Destination register should be distinct from source registers 183 vfmaddcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 184 185// CHECK: vfmaddcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 186// CHECK-STDERR: warning: Destination register should be distinct from source registers 187 vfmaddcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 188 189// CHECK: vfmaddcph (%rip){1to16}, %zmm23, %zmm23 190// CHECK-STDERR: warning: Destination register should be distinct from source registers 191 vfmaddcph (%rip){1to16}, %zmm23, %zmm23 192 193// CHECK: vfmaddcph -2048(,%rbp,2), %zmm23, %zmm23 194// CHECK-STDERR: warning: Destination register should be distinct from source registers 195 vfmaddcph -2048(,%rbp,2), %zmm23, %zmm23 196 197// CHECK: vfmaddcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 198// CHECK-STDERR: warning: Destination register should be distinct from source registers 199 vfmaddcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 200 201// CHECK: vfmaddcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 202// CHECK-STDERR: warning: Destination register should be distinct from source registers 203 vfmaddcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 204 205// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24 206// CHECK-STDERR: warning: Destination register should be distinct from source registers 207 vfmaddcsh %xmm24, %xmm23, %xmm24 208 209// CHECK: vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23 210// CHECK-STDERR: warning: Destination register should be distinct from source registers 211 vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23 212 213// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7} 214// CHECK-STDERR: warning: Destination register should be distinct from source registers 215 vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7} 216 217// CHECK: vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 218// CHECK-STDERR: warning: Destination register should be distinct from source registers 219 vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 220 221// CHECK: vfmaddcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 222// CHECK-STDERR: warning: Destination register should be distinct from source registers 223 vfmaddcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 224 225// CHECK: vfmaddcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 226// CHECK-STDERR: warning: Destination register should be distinct from source registers 227 vfmaddcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 228 229// CHECK: vfmaddcsh (%rip), %xmm23, %xmm23 230// CHECK-STDERR: warning: Destination register should be distinct from source registers 231 vfmaddcsh (%rip), %xmm23, %xmm23 232 233// CHECK: vfmaddcsh -128(,%rbp,2), %xmm23, %xmm23 234// CHECK-STDERR: warning: Destination register should be distinct from source registers 235 vfmaddcsh -128(,%rbp,2), %xmm23, %xmm23 236 237// CHECK: vfmaddcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 238// CHECK-STDERR: warning: Destination register should be distinct from source registers 239 vfmaddcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 240 241// CHECK: vfmaddcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 242// CHECK-STDERR: warning: Destination register should be distinct from source registers 243 vfmaddcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 244 245// CHECK: vfmulcph %zmm24, %zmm23, %zmm24 246// CHECK-STDERR: warning: Destination register should be distinct from source registers 247 vfmulcph %zmm24, %zmm23, %zmm24 248 249// CHECK: vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23 250// CHECK-STDERR: warning: Destination register should be distinct from source registers 251 vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23 252 253// CHECK: vfmulcph %zmm24, %zmm23, %zmm24 {%k7} 254// CHECK-STDERR: warning: Destination register should be distinct from source registers 255 vfmulcph %zmm24, %zmm23, %zmm24 {%k7} 256 257// CHECK: vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 258// CHECK-STDERR: warning: Destination register should be distinct from source registers 259 vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z} 260 261// CHECK: vfmulcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 262// CHECK-STDERR: warning: Destination register should be distinct from source registers 263 vfmulcph 268435456(%rbp,%r14,8), %zmm23, %zmm23 264 265// CHECK: vfmulcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 266// CHECK-STDERR: warning: Destination register should be distinct from source registers 267 vfmulcph 291(%r8,%rax,4), %zmm23, %zmm23 {%k7} 268 269// CHECK: vfmulcph (%rip){1to16}, %zmm23, %zmm23 270// CHECK-STDERR: warning: Destination register should be distinct from source registers 271 vfmulcph (%rip){1to16}, %zmm23, %zmm23 272 273// CHECK: vfmulcph -2048(,%rbp,2), %zmm23, %zmm23 274// CHECK-STDERR: warning: Destination register should be distinct from source registers 275 vfmulcph -2048(,%rbp,2), %zmm23, %zmm23 276 277// CHECK: vfmulcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 278// CHECK-STDERR: warning: Destination register should be distinct from source registers 279 vfmulcph 8128(%rcx), %zmm23, %zmm23 {%k7} {z} 280 281// CHECK: vfmulcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 282// CHECK-STDERR: warning: Destination register should be distinct from source registers 283 vfmulcph -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z} 284 285// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24 286// CHECK-STDERR: warning: Destination register should be distinct from source registers 287 vfmulcsh %xmm24, %xmm23, %xmm24 288 289// CHECK: vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23 290// CHECK-STDERR: warning: Destination register should be distinct from source registers 291 vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23 292 293// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24 {%k7} 294// CHECK-STDERR: warning: Destination register should be distinct from source registers 295 vfmulcsh %xmm24, %xmm23, %xmm24 {%k7} 296 297// CHECK: vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 298// CHECK-STDERR: warning: Destination register should be distinct from source registers 299 vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z} 300 301// CHECK: vfmulcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 302// CHECK-STDERR: warning: Destination register should be distinct from source registers 303 vfmulcsh 268435456(%rbp,%r14,8), %xmm23, %xmm23 304 305// CHECK: vfmulcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 306// CHECK-STDERR: warning: Destination register should be distinct from source registers 307 vfmulcsh 291(%r8,%rax,4), %xmm23, %xmm23 {%k7} 308 309// CHECK: vfmulcsh (%rip), %xmm23, %xmm23 310// CHECK-STDERR: warning: Destination register should be distinct from source registers 311 vfmulcsh (%rip), %xmm23, %xmm23 312 313// CHECK: vfmulcsh -128(,%rbp,2), %xmm23, %xmm23 314// CHECK-STDERR: warning: Destination register should be distinct from source registers 315 vfmulcsh -128(,%rbp,2), %xmm23, %xmm23 316 317// CHECK: vfmulcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 318// CHECK-STDERR: warning: Destination register should be distinct from source registers 319 vfmulcsh 508(%rcx), %xmm23, %xmm23 {%k7} {z} 320 321// CHECK: vfmulcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 322// CHECK-STDERR: warning: Destination register should be distinct from source registers 323 vfmulcsh -512(%rdx), %xmm23, %xmm23 {%k7} {z} 324 325