[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