diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2018-10-27 20:36:11 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2018-10-27 20:36:11 +0000 |
commit | a51921877a488ae5a958c19f96327994657e407a (patch) | |
tree | 155e69b84eb04bad5f997869a6d0f5057aef5b0a /llvm/test/CodeGen/X86/cmov-schedule.ll | |
parent | e61b0d772c28c7230b2008aafbab47d895aecc2e (diff) | |
download | bcm5719-llvm-a51921877a488ae5a958c19f96327994657e407a.tar.gz bcm5719-llvm-a51921877a488ae5a958c19f96327994657e407a.zip |
[NFC][X86] Baseline tests for AMD BdVer2 (Piledriver) Scheduler model
Adding the baseline tests in a preparatory NFC commit,
so that the actual commit shows the *diff*.
Yes, i'm aware that a few of these codegen-based sched tests
are testing wrong instructions, i will fix that afterwards.
For https://reviews.llvm.org/D52779
llvm-svn: 345462
Diffstat (limited to 'llvm/test/CodeGen/X86/cmov-schedule.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/cmov-schedule.ll | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/cmov-schedule.ll b/llvm/test/CodeGen/X86/cmov-schedule.ll index 8993c30d1f8..93c771e305a 100644 --- a/llvm/test/CodeGen/X86/cmov-schedule.ll +++ b/llvm/test/CodeGen/X86/cmov-schedule.ll @@ -8,6 +8,7 @@ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 | FileCheck %s --check-prefix=CHECK --check-prefix=BDVER2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1 @@ -540,6 +541,72 @@ define void @test_cmov_16(i16 %a0, i16 %a1, i16 *%a2) optsize { ; SKX-NEXT: #NO_APP ; SKX-NEXT: retq # sched: [7:1.00] ; +; BDVER2-LABEL: test_cmov_16: +; BDVER2: # %bb.0: +; BDVER2-NEXT: #APP +; BDVER2-NEXT: cmovow %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnow %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovbw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovbw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovbw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovaew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovaew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovaew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovbew %si, %di # sched: [3:1.00] +; BDVER2-NEXT: cmovbew %si, %di # sched: [3:1.00] +; BDVER2-NEXT: cmovaw %si, %di # sched: [3:1.00] +; BDVER2-NEXT: cmovaw %si, %di # sched: [3:1.00] +; BDVER2-NEXT: cmovsw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnsw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovpw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovpw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnpw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovnpw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovlw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovlw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovgew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovgew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovlew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovlew %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovgw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovgw %si, %di # sched: [2:0.67] +; BDVER2-NEXT: cmovow (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnow (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovbw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovbw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovbw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovaew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovaew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovaew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovbew (%rdx), %di # sched: [8:1.00] +; BDVER2-NEXT: cmovbew (%rdx), %di # sched: [8:1.00] +; BDVER2-NEXT: cmovaw (%rdx), %di # sched: [8:1.00] +; BDVER2-NEXT: cmovaw (%rdx), %di # sched: [8:1.00] +; BDVER2-NEXT: cmovsw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnsw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovpw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovpw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnpw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovnpw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovlw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovlw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovgew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovgew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovlew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovlew (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovgw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: cmovgw (%rdx), %di # sched: [7:0.67] +; BDVER2-NEXT: #NO_APP +; BDVER2-NEXT: retq # sched: [1:1.00] +; ; BTVER2-LABEL: test_cmov_16: ; BTVER2: # %bb.0: ; BTVER2-NEXT: #APP @@ -1204,6 +1271,72 @@ define void @test_cmov_32(i32 %a0, i32 %a1, i32 *%a2) optsize { ; SKX-NEXT: #NO_APP ; SKX-NEXT: retq # sched: [7:1.00] ; +; BDVER2-LABEL: test_cmov_32: +; BDVER2: # %bb.0: +; BDVER2-NEXT: #APP +; BDVER2-NEXT: cmovol %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnol %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovbl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovbl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovbl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovael %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovael %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovael %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovbel %esi, %edi # sched: [3:1.00] +; BDVER2-NEXT: cmovbel %esi, %edi # sched: [3:1.00] +; BDVER2-NEXT: cmoval %esi, %edi # sched: [3:1.00] +; BDVER2-NEXT: cmoval %esi, %edi # sched: [3:1.00] +; BDVER2-NEXT: cmovsl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnsl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovpl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovpl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnpl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovnpl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovll %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovll %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovgel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovgel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovlel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovlel %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovgl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovgl %esi, %edi # sched: [2:0.67] +; BDVER2-NEXT: cmovol (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnol (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovbl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovbl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovbl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovael (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovael (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovael (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovbel (%rdx), %edi # sched: [8:1.00] +; BDVER2-NEXT: cmovbel (%rdx), %edi # sched: [8:1.00] +; BDVER2-NEXT: cmoval (%rdx), %edi # sched: [8:1.00] +; BDVER2-NEXT: cmoval (%rdx), %edi # sched: [8:1.00] +; BDVER2-NEXT: cmovsl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnsl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovpl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovpl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnpl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovnpl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovll (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovll (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovgel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovgel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovlel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovlel (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovgl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: cmovgl (%rdx), %edi # sched: [7:0.67] +; BDVER2-NEXT: #NO_APP +; BDVER2-NEXT: retq # sched: [1:1.00] +; ; BTVER2-LABEL: test_cmov_32: ; BTVER2: # %bb.0: ; BTVER2-NEXT: #APP @@ -1868,6 +2001,72 @@ define void @test_cmov_64(i64 %a0, i64 %a1, i64 *%a2) optsize { ; SKX-NEXT: #NO_APP ; SKX-NEXT: retq # sched: [7:1.00] ; +; BDVER2-LABEL: test_cmov_64: +; BDVER2: # %bb.0: +; BDVER2-NEXT: #APP +; BDVER2-NEXT: cmovoq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovnoq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovbq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovbq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovbq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovaeq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovaeq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovaeq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmoveq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmoveq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovneq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovneq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovbeq %rsi, %rdi # sched: [3:1.00] +; BDVER2-NEXT: cmovbeq %rsi, %rdi # sched: [3:1.00] +; BDVER2-NEXT: cmovaq %rsi, %rdi # sched: [3:1.00] +; BDVER2-NEXT: cmovaq %rsi, %rdi # sched: [3:1.00] +; BDVER2-NEXT: cmovsq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovnsq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovpq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovpq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovnpq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovnpq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovlq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovlq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovgeq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovgeq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovleq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovleq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovgq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovgq %rsi, %rdi # sched: [2:0.67] +; BDVER2-NEXT: cmovoq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovnoq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovbq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovbq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovbq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovaeq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovaeq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovaeq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmoveq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmoveq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovneq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovneq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovbeq (%rdx), %rdi # sched: [8:1.00] +; BDVER2-NEXT: cmovbeq (%rdx), %rdi # sched: [8:1.00] +; BDVER2-NEXT: cmovaq (%rdx), %rdi # sched: [8:1.00] +; BDVER2-NEXT: cmovaq (%rdx), %rdi # sched: [8:1.00] +; BDVER2-NEXT: cmovsq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovnsq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovpq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovpq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovnpq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovnpq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovlq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovlq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovgeq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovgeq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovleq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovleq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovgq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: cmovgq (%rdx), %rdi # sched: [7:0.67] +; BDVER2-NEXT: #NO_APP +; BDVER2-NEXT: retq # sched: [1:1.00] +; ; BTVER2-LABEL: test_cmov_64: ; BTVER2: # %bb.0: ; BTVER2-NEXT: #APP |