Compiler projects using llvm
// RUN: llvm-mc -triple x86_64-unknown-unknown %s > %t 2> %t.err
// RUN: FileCheck < %t %s
// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s

// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph %zmm24, %zmm23, %zmm24

// CHECK: vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23

// CHECK: vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph %zmm24, %zmm23, %zmm24 {%k7}

// CHECK: vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23

// CHECK: vfcmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}

// CHECK: vfcmaddcph  (%rip){1to16}, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  (%rip){1to16}, %zmm23, %zmm23

// CHECK: vfcmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  -2048(,%rbp,2), %zmm23, %zmm23

// CHECK: vfcmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh %xmm24, %xmm23, %xmm24

// CHECK: vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23

// CHECK: vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh %xmm24, %xmm23, %xmm24 {%k7}

// CHECK: vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}

// CHECK: vfcmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23

// CHECK: vfcmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}

// CHECK: vfcmaddcsh  (%rip), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  (%rip), %xmm23, %xmm23

// CHECK: vfcmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  -128(,%rbp,2), %xmm23, %xmm23

// CHECK: vfcmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfcmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph %zmm24, %zmm23, %zmm24

// CHECK: vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph {rn-sae}, %zmm24, %zmm23, %zmm23

// CHECK: vfcmulcph %zmm24, %zmm23, %zmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph %zmm24, %zmm23, %zmm24 {%k7}

// CHECK: vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23

// CHECK: vfcmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}

// CHECK: vfcmulcph  (%rip){1to16}, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  (%rip){1to16}, %zmm23, %zmm23

// CHECK: vfcmulcph  -2048(,%rbp,2), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  -2048(,%rbp,2), %zmm23, %zmm23

// CHECK: vfcmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh %xmm24, %xmm23, %xmm24

// CHECK: vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23

// CHECK: vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh %xmm24, %xmm23, %xmm24 {%k7}

// CHECK: vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}

// CHECK: vfcmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23

// CHECK: vfcmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}

// CHECK: vfcmulcsh  (%rip), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  (%rip), %xmm23, %xmm23

// CHECK: vfcmulcsh  -128(,%rbp,2), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  -128(,%rbp,2), %xmm23, %xmm23

// CHECK: vfcmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfcmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfcmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph %zmm24, %zmm23, %zmm24

// CHECK: vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph {rn-sae}, %zmm24, %zmm23, %zmm23

// CHECK: vfmaddcph %zmm24, %zmm23, %zmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph %zmm24, %zmm23, %zmm24 {%k7}

// CHECK: vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  268435456(%rbp,%r14,8), %zmm23, %zmm23

// CHECK: vfmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}

// CHECK: vfmaddcph  (%rip){1to16}, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  (%rip){1to16}, %zmm23, %zmm23

// CHECK: vfmaddcph  -2048(,%rbp,2), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  -2048(,%rbp,2), %zmm23, %zmm23

// CHECK: vfmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh %xmm24, %xmm23, %xmm24

// CHECK: vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh {rn-sae}, %xmm24, %xmm23, %xmm23

// CHECK: vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh %xmm24, %xmm23, %xmm24 {%k7}

// CHECK: vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23

// CHECK: vfmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}

// CHECK: vfmaddcsh  (%rip), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  (%rip), %xmm23, %xmm23

// CHECK: vfmaddcsh  -128(,%rbp,2), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  -128(,%rbp,2), %xmm23, %xmm23

// CHECK: vfmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmaddcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmulcph %zmm24, %zmm23, %zmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph %zmm24, %zmm23, %zmm24

// CHECK: vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph {rn-sae}, %zmm24, %zmm23, %zmm23

// CHECK: vfmulcph %zmm24, %zmm23, %zmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph %zmm24, %zmm23, %zmm24 {%k7}

// CHECK: vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph {rz-sae}, %zmm24, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  268435456(%rbp,%r14,8), %zmm23, %zmm23

// CHECK: vfmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  291(%r8,%rax,4), %zmm23, %zmm23 {%k7}

// CHECK: vfmulcph  (%rip){1to16}, %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  (%rip){1to16}, %zmm23, %zmm23

// CHECK: vfmulcph  -2048(,%rbp,2), %zmm23, %zmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  -2048(,%rbp,2), %zmm23, %zmm23

// CHECK: vfmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  8128(%rcx), %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcph  -512(%rdx){1to16}, %zmm23, %zmm23 {%k7} {z}

// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh %xmm24, %xmm23, %xmm24

// CHECK: vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh {rn-sae}, %xmm24, %xmm23, %xmm23

// CHECK: vfmulcsh %xmm24, %xmm23, %xmm24 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh %xmm24, %xmm23, %xmm24 {%k7}

// CHECK: vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh {rz-sae}, %xmm24, %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  268435456(%rbp,%r14,8), %xmm23, %xmm23

// CHECK: vfmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  291(%r8,%rax,4), %xmm23, %xmm23 {%k7}

// CHECK: vfmulcsh  (%rip), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  (%rip), %xmm23, %xmm23

// CHECK: vfmulcsh  -128(,%rbp,2), %xmm23, %xmm23
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  -128(,%rbp,2), %xmm23, %xmm23

// CHECK: vfmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  508(%rcx), %xmm23, %xmm23 {%k7} {z}

// CHECK: vfmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}
// CHECK-STDERR: warning: Destination register should be distinct from source registers
          vfmulcsh  -512(%rdx), %xmm23, %xmm23 {%k7} {z}