[llvm] r332622 - [llvm-mca][X86] Add CMOV test files

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Thu May 17 09:29:13 PDT 2018


Author: rksimon
Date: Thu May 17 09:29:12 2018
New Revision: 332622

URL: http://llvm.org/viewvc/llvm-project?rev=332622&view=rev
Log:
[llvm-mca][X86] Add CMOV test files

Added:
    llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmov.s
    llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmov.s

Added: llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,318 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=atom -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  1      1     1.00    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  1      1     1.00    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  1      1     1.00    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - AtomPort0
+# CHECK-NEXT: [1]   - AtomPort1
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]
+# CHECK-NEXT: 72.00  24.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    Instructions:
+# CHECK-NEXT: 0.50   0.50   cmovow	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovnow	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovbw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovaew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovnew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovbew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovaw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovsw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovnsw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovpw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovnpw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovlw	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovgew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovlew	%si, %di
+# CHECK-NEXT: 0.50   0.50   cmovgw	%si, %di
+# CHECK-NEXT: 1.00    -     cmovow	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovnow	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovbw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovaew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovnew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovbew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovaw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovsw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovnsw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovpw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovnpw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovlw	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovgew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovlew	(%rax), %di
+# CHECK-NEXT: 1.00    -     cmovgw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   cmovol	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovnol	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovbl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovael	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovnel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovbel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmoval	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovsl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovnsl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovpl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovnpl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovll	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovgel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovlel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   cmovgl	%esi, %edi
+# CHECK-NEXT: 1.00    -     cmovol	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovnol	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovbl	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovael	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovel	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovnel	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovbel	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmoval	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovsl	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovnsl	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovpl	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovnpl	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovll	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovgel	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovlel	(%rax), %edi
+# CHECK-NEXT: 1.00    -     cmovgl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   cmovoq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovnoq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovbq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovaeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmoveq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovneq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovbeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovaq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovsq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovnsq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovpq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovnpq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovlq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovgeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovleq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   cmovgq	%rsi, %rdi
+# CHECK-NEXT: 1.00    -     cmovoq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovbq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmoveq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovneq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovaq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovsq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovpq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovlq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovleq	(%rax), %rdi
+# CHECK-NEXT: 1.00    -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,326 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovbew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovbel	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - BWDivider
+# CHECK-NEXT: [1]   - BWFPDivider
+# CHECK-NEXT: [2]   - BWPort0
+# CHECK-NEXT: [3]   - BWPort1
+# CHECK-NEXT: [4]   - BWPort2
+# CHECK-NEXT: [5]   - BWPort3
+# CHECK-NEXT: [6]   - BWPort4
+# CHECK-NEXT: [7]   - BWPort5
+# CHECK-NEXT: [8]   - BWPort6
+# CHECK-NEXT: [9]   - BWPort7
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
+# CHECK-NEXT:  -      -     51.00  3.00   24.00  24.00   -     3.00   51.00   -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,330 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  1      4     1.00    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  1      4     1.00    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  1      4     1.00    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - JALU0
+# CHECK-NEXT: [1]   - JALU1
+# CHECK-NEXT: [2]   - JDiv
+# CHECK-NEXT: [3]   - JFPA
+# CHECK-NEXT: [4]   - JFPM
+# CHECK-NEXT: [5]   - JFPU0
+# CHECK-NEXT: [6]   - JFPU1
+# CHECK-NEXT: [7]   - JLAGU
+# CHECK-NEXT: [8]   - JMul
+# CHECK-NEXT: [9]   - JSAGU
+# CHECK-NEXT: [10]  - JSTC
+# CHECK-NEXT: [11]  - JVALU0
+# CHECK-NEXT: [12]  - JVALU1
+# CHECK-NEXT: [13]  - JVIMUL
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
+# CHECK-NEXT: 48.00  48.00   -      -      -      -      -     48.00   -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovow	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnow	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovaew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovaw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovsw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnsw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovpw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnpw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovlw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovlew	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgw	%si, %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovow	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnow	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovaew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovaw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovsw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnsw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovpw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnpw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovlw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovlew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovol	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnol	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovael	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmoval	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovsl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnsl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovpl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnpl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovll	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovlel	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovol	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnol	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovael	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmoval	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovsl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnsl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovpl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnpl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovll	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovlel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovoq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmoveq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovneq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovaq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovsq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovpq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovlq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovleq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmovgq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovoq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmoveq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovneq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovaq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovsq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovpq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovlq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovleq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,326 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  2      2     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  3      3     0.75                        cmovbew	%si, %di
+# CHECK-NEXT:  3      3     0.75                        cmovaw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  2      2     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  4      8     0.75    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  4      8     0.75    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  3      7     0.50    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  2      2     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  3      3     0.75                        cmovbel	%esi, %edi
+# CHECK-NEXT:  3      3     0.75                        cmoval	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  2      2     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  4      8     0.75    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  4      8     0.75    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.50    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  2      2     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  3      3     0.75                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  3      3     0.75                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  4      8     0.75    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  4      8     0.75    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.50    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - HWDivider
+# CHECK-NEXT: [1]   - HWFPDivider
+# CHECK-NEXT: [2]   - HWPort0
+# CHECK-NEXT: [3]   - HWPort1
+# CHECK-NEXT: [4]   - HWPort2
+# CHECK-NEXT: [5]   - HWPort3
+# CHECK-NEXT: [6]   - HWPort4
+# CHECK-NEXT: [7]   - HWPort5
+# CHECK-NEXT: [8]   - HWPort6
+# CHECK-NEXT: [9]   - HWPort7
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
+# CHECK-NEXT:  -      -     75.00  27.00  24.00  24.00   -     27.00  75.00   -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovow	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00   0.50    -      -      -     0.50   1.00    -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00   0.50   0.50   0.50    -     0.50   1.00    -     cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,324 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=slm -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     1.00                        cmovow	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovnow	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovbw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovaew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovnew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovbew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovaw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovsw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovpw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovlw	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovgew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovlew	%si, %di
+# CHECK-NEXT:  1      2     1.00                        cmovgw	%si, %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      2     1.00                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovnel	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovbel	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      2     1.00                        cmovgl	%esi, %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  1      5     1.00    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      2     1.00                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      2     1.00                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  1      5     1.00    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - SLMDivider
+# CHECK-NEXT: [1]   - SLMFPDivider
+# CHECK-NEXT: [2]   - SLMFPMultiplier
+# CHECK-NEXT: [3]   - SLM_FPC_RSV0
+# CHECK-NEXT: [4]   - SLM_FPC_RSV1
+# CHECK-NEXT: [5]   - SLM_IEC_RSV0
+# CHECK-NEXT: [6]   - SLM_IEC_RSV1
+# CHECK-NEXT: [7]   - SLM_MEC_RSV
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
+# CHECK-NEXT:  -      -      -      -      -     96.00  96.00  48.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovow	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovow	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   1.00   cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,324 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  2      2     0.67                        cmovow	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovnow	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovbw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovaew	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovew	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovnew	%si, %di
+# CHECK-NEXT:  3      3     1.00                        cmovbew	%si, %di
+# CHECK-NEXT:  3      3     1.00                        cmovaw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovsw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovnsw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovpw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovnpw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovlw	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovgew	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovlew	%si, %di
+# CHECK-NEXT:  2      2     0.67                        cmovgw	%si, %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  4      8     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  4      8     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  3      7     0.67    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  2      2     0.67                        cmovol	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovnol	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovbl	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovael	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovel	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovnel	%esi, %edi
+# CHECK-NEXT:  3      3     1.00                        cmovbel	%esi, %edi
+# CHECK-NEXT:  3      3     1.00                        cmoval	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovsl	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovpl	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovll	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovgel	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovlel	%esi, %edi
+# CHECK-NEXT:  2      2     0.67                        cmovgl	%esi, %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  4      8     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  4      8     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  3      7     0.67    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  2      2     0.67                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  3      3     1.00                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  3      3     1.00                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  2      2     0.67                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  4      8     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  4      8     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  3      7     0.67    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - SBDivider
+# CHECK-NEXT: [1]   - SBFPDivider
+# CHECK-NEXT: [2]   - SBPort0
+# CHECK-NEXT: [3]   - SBPort1
+# CHECK-NEXT: [4]   - SBPort4
+# CHECK-NEXT: [5]   - SBPort5
+# CHECK-NEXT: [6.0] - SBPort23
+# CHECK-NEXT: [6.1] - SBPort23
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
+# CHECK-NEXT:  -      -     86.00  32.00   -     86.00  24.00  24.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovow	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovew	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33    -      -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.33   0.33    -     1.33   0.50   0.50   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,326 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  2      2     1.00                        cmovbew	%si, %di
+# CHECK-NEXT:  2      2     1.00                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  3      7     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  3      7     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  2      2     1.00                        cmovbel	%esi, %edi
+# CHECK-NEXT:  2      2     1.00                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  3      7     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  3      7     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  3      7     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - SKLDivider
+# CHECK-NEXT: [1]   - SKLFPDivider
+# CHECK-NEXT: [2]   - SKLPort0
+# CHECK-NEXT: [3]   - SKLPort1
+# CHECK-NEXT: [4]   - SKLPort2
+# CHECK-NEXT: [5]   - SKLPort3
+# CHECK-NEXT: [6]   - SKLPort4
+# CHECK-NEXT: [7]   - SKLPort5
+# CHECK-NEXT: [8]   - SKLPort6
+# CHECK-NEXT: [9]   - SKLPort7
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
+# CHECK-NEXT:  -      -     54.00   -     24.00  24.00   -      -     54.00   -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,326 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew	%si, %di
+# CHECK-NEXT:  2      2     1.00                        cmovbew	%si, %di
+# CHECK-NEXT:  2      2     1.00                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw	%si, %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  3      7     1.00    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  3      7     1.00    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  2      6     0.50    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel	%esi, %edi
+# CHECK-NEXT:  2      2     1.00                        cmovbel	%esi, %edi
+# CHECK-NEXT:  2      2     1.00                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl	%esi, %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  3      7     1.00    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  3      7     1.00    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  3      7     1.00    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  3      7     1.00    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  2      6     0.50    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - SKXDivider
+# CHECK-NEXT: [1]   - SKXFPDivider
+# CHECK-NEXT: [2]   - SKXPort0
+# CHECK-NEXT: [3]   - SKXPort1
+# CHECK-NEXT: [4]   - SKXPort2
+# CHECK-NEXT: [5]   - SKXPort3
+# CHECK-NEXT: [6]   - SKXPort4
+# CHECK-NEXT: [7]   - SKXPort5
+# CHECK-NEXT: [8]   - SKXPort6
+# CHECK-NEXT: [9]   - SKXPort7
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
+# CHECK-NEXT:  -      -     54.00   -     24.00  24.00   -      -     54.00   -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgw	%si, %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnow	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbew	(%rax), %di
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovaw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlew	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgl	%esi, %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnol	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovael	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbel	(%rax), %edi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmoval	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovll	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlel	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     1.00    -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     cmovgq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovbq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmoveq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovneq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -     1.00    -     cmovaq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovlq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovleq	(%rax), %rdi
+# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     cmovgq	(%rax), %rdi
+

Added: llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmov.s?rev=332622&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmov.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmov.s Thu May 17 09:29:12 2018
@@ -0,0 +1,328 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.25                        cmovow	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovnow	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovbw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovaew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovnew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovbew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovaw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovsw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovnsw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovpw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovnpw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovlw	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovgew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovlew	%si, %di
+# CHECK-NEXT:  1      1     0.25                        cmovgw	%si, %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovow	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovnow	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovbw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovaew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovnew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovbew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovaw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovsw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovnsw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovpw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovnpw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovlw	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovgew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovlew	(%rax), %di
+# CHECK-NEXT:  2      5     0.50    *                   cmovgw	(%rax), %di
+# CHECK-NEXT:  1      1     0.25                        cmovol	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovnol	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovbl	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovael	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovel	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovnel	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovbel	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmoval	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovnsl	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovnpl	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovll	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovgel	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovlel	%esi, %edi
+# CHECK-NEXT:  1      1     0.25                        cmovgl	%esi, %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovol	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnol	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovbl	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovael	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovel	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnel	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovbel	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmoval	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovsl	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnsl	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovpl	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnpl	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovll	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovgel	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovlel	(%rax), %edi
+# CHECK-NEXT:  2      5     0.50    *                   cmovgl	(%rax), %edi
+# CHECK-NEXT:  1      1     0.25                        cmovoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovbq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmoveq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovneq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovaq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovlq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovleq	%rsi, %rdi
+# CHECK-NEXT:  1      1     0.25                        cmovgq	%rsi, %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovoq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnoq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovbq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovaeq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmoveq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovneq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovbeq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovaq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovsq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnsq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovpq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovnpq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovlq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovgeq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovleq	(%rax), %rdi
+# CHECK-NEXT:  2      5     0.50    *                   cmovgq	(%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - ZnAGU0
+# CHECK-NEXT: [1]   - ZnAGU1
+# CHECK-NEXT: [2]   - ZnALU0
+# CHECK-NEXT: [3]   - ZnALU1
+# CHECK-NEXT: [4]   - ZnALU2
+# CHECK-NEXT: [5]   - ZnALU3
+# CHECK-NEXT: [6]   - ZnDivider
+# CHECK-NEXT: [7]   - ZnFPU0
+# CHECK-NEXT: [8]   - ZnFPU1
+# CHECK-NEXT: [9]   - ZnFPU2
+# CHECK-NEXT: [10]  - ZnFPU3
+# CHECK-NEXT: [11]  - ZnMultiplier
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
+# CHECK-NEXT: 24.00  24.00  24.00  24.00  24.00  24.00   -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovow	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnow	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlw	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlew	%si, %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgw	%si, %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovow	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnow	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlw	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlew	(%rax), %di
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgw	(%rax), %di
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovol	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnol	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbl	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovael	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovel	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnel	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbel	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmoval	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsl	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpl	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovll	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgel	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlel	%esi, %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgl	%esi, %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovol	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnol	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovael	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmoval	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpl	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovll	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlel	(%rax), %edi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgl	(%rax), %edi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnoq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmoveq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovneq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgeq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovleq	%rsi, %rdi
+# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgq	%rsi, %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovoq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnoq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmoveq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovneq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovbeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovaq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovsq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnsq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovpq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovnpq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovlq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgeq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovleq	(%rax), %rdi
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmovgq	(%rax), %rdi
+




More information about the llvm-commits mailing list