diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-12-07 16:04:20 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-12-07 16:04:20 +0000 |
| commit | ffce0d8fbcc901a1c8c4ffaa35e2224a1acdc3e0 (patch) | |
| tree | 6d297d20d04cbb804291814a5207a9d626968b4e | |
| parent | a13271bcba1c346a1cdc14de0cb0fa4d4d3ec6b3 (diff) | |
| download | bcm5719-llvm-ffce0d8fbcc901a1c8c4ffaa35e2224a1acdc3e0.tar.gz bcm5719-llvm-ffce0d8fbcc901a1c8c4ffaa35e2224a1acdc3e0.zip | |
[X86] Add LAHF/SAHF scheduling test
llvm-svn: 320054
| -rw-r--r-- | llvm/test/CodeGen/X86/schedule-x86_64.ll | 86 |
1 files changed, 83 insertions, 3 deletions
diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll index b657572b2b5..0e524ab1fe6 100644 --- a/llvm/test/CodeGen/X86/schedule-x86_64.ll +++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll @@ -1163,7 +1163,89 @@ define void @test_invlpg_invlpga(i8 *%a0) optsize { ; TODO - test_jmp -; TODO - test_lahf +define void @test_lahf_sahf() optsize { +; GENERIC-LABEL: test_lahf_sahf: +; GENERIC: # %bb.0: +; GENERIC-NEXT: #APP +; GENERIC-NEXT: lahf # sched: [1:0.50] +; GENERIC-NEXT: sahf # sched: [1:0.50] +; GENERIC-NEXT: #NO_APP +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: test_lahf_sahf: +; ATOM: # %bb.0: +; ATOM-NEXT: #APP +; ATOM-NEXT: lahf # sched: [1:0.50] +; ATOM-NEXT: sahf # sched: [1:0.50] +; ATOM-NEXT: #NO_APP +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: test_lahf_sahf: +; SLM: # %bb.0: +; SLM-NEXT: #APP +; SLM-NEXT: lahf # sched: [1:0.50] +; SLM-NEXT: sahf # sched: [1:0.50] +; SLM-NEXT: #NO_APP +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: test_lahf_sahf: +; SANDY: # %bb.0: +; SANDY-NEXT: #APP +; SANDY-NEXT: lahf # sched: [1:0.50] +; SANDY-NEXT: sahf # sched: [1:0.50] +; SANDY-NEXT: #NO_APP +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: test_lahf_sahf: +; HASWELL: # %bb.0: +; HASWELL-NEXT: #APP +; HASWELL-NEXT: lahf # sched: [1:0.25] +; HASWELL-NEXT: sahf # sched: [1:0.25] +; HASWELL-NEXT: #NO_APP +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: test_lahf_sahf: +; BROADWELL: # %bb.0: +; BROADWELL-NEXT: #APP +; BROADWELL-NEXT: lahf # sched: [1:0.25] +; BROADWELL-NEXT: sahf # sched: [1:0.25] +; BROADWELL-NEXT: #NO_APP +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: test_lahf_sahf: +; SKYLAKE: # %bb.0: +; SKYLAKE-NEXT: #APP +; SKYLAKE-NEXT: lahf # sched: [1:0.25] +; SKYLAKE-NEXT: sahf # sched: [1:0.25] +; SKYLAKE-NEXT: #NO_APP +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: test_lahf_sahf: +; SKX: # %bb.0: +; SKX-NEXT: #APP +; SKX-NEXT: lahf # sched: [1:0.25] +; SKX-NEXT: sahf # sched: [1:0.25] +; SKX-NEXT: #NO_APP +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: test_lahf_sahf: +; BTVER2: # %bb.0: +; BTVER2-NEXT: #APP +; BTVER2-NEXT: lahf # sched: [1:0.50] +; BTVER2-NEXT: sahf # sched: [1:0.50] +; BTVER2-NEXT: #NO_APP +; BTVER2-NEXT: retq # sched: [4:1.00] +; +; ZNVER1-LABEL: test_lahf_sahf: +; ZNVER1: # %bb.0: +; ZNVER1-NEXT: #APP +; ZNVER1-NEXT: lahf # sched: [100:?] +; ZNVER1-NEXT: sahf # sched: [2:0.25] +; ZNVER1-NEXT: #NO_APP +; ZNVER1-NEXT: retq # sched: [1:0.50] + tail call void asm "lahf \0A\09 sahf", ""() nounwind + ret void +} ; TODO - test_lds ; TODO - test_les @@ -1243,8 +1325,6 @@ define void @test_invlpg_invlpga(i8 *%a0) optsize { ; TODO - test_rol ; TODO - test_ror -; TODO - test_sahf - ; TODO - test_sar ; TODO - test_shl ; TODO - test_shr |

