diff options
author | Gadi Haber <gadi.haber@intel.com> | 2017-12-08 09:48:44 +0000 |
---|---|---|
committer | Gadi Haber <gadi.haber@intel.com> | 2017-12-08 09:48:44 +0000 |
commit | 2cf601f28f158cdce3c7640186e46a65bf308fc0 (patch) | |
tree | 89247772dc39caf970e3be5da7d93b8c2d6bfff8 /llvm/test/CodeGen/X86/bmi2-schedule.ll | |
parent | 76b36d3a7f4237e2b923c532e9c350202a0c78b4 (diff) | |
download | bcm5719-llvm-2cf601f28f158cdce3c7640186e46a65bf308fc0.tar.gz bcm5719-llvm-2cf601f28f158cdce3c7640186e46a65bf308fc0.zip |
[X86][Haswell]: Updating the scheduling information for the Haswell subtarget.
Updated the scheduling information for the Haswell subtarget with the following changes:
Regrouped the instructions after adding appropriate load + store latencies.
Added scheduling for missing instructions such as the GATHER instrs.
The changes were made after revisiting the latencies impact of all memory uOps.
Reviewers: RKSimon, zvi, craig.topper, apilipenko
Differential Revision: https://reviews.llvm.org/D40021
Change-Id: Iaf6c1f5169add1552845a8a566af4e5a359217a7
llvm-svn: 320137
Diffstat (limited to 'llvm/test/CodeGen/X86/bmi2-schedule.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/bmi2-schedule.ll | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/llvm/test/CodeGen/X86/bmi2-schedule.ll b/llvm/test/CodeGen/X86/bmi2-schedule.ll index 807e8d515e2..cad2b917016 100644 --- a/llvm/test/CodeGen/X86/bmi2-schedule.ll +++ b/llvm/test/CodeGen/X86/bmi2-schedule.ll @@ -16,10 +16,10 @@ define i32 @test_bzhi_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; HASWELL-LABEL: test_bzhi_i32: ; HASWELL: # %bb.0: -; HASWELL-NEXT: bzhil %edi, (%rdx), %ecx # sched: [1:0.50] +; HASWELL-NEXT: bzhil %edi, (%rdx), %ecx # sched: [6:0.50] ; HASWELL-NEXT: bzhil %edi, %esi, %eax # sched: [1:0.50] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_bzhi_i32: ; BROADWELL: # %bb.0: @@ -37,10 +37,10 @@ define i32 @test_bzhi_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; KNL-LABEL: test_bzhi_i32: ; KNL: # %bb.0: -; KNL-NEXT: bzhil %edi, (%rdx), %ecx # sched: [1:0.50] +; KNL-NEXT: bzhil %edi, (%rdx), %ecx # sched: [6:0.50] ; KNL-NEXT: bzhil %edi, %esi, %eax # sched: [1:0.50] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_bzhi_i32: ; ZNVER1: # %bb.0: @@ -66,10 +66,10 @@ define i64 @test_bzhi_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; HASWELL-LABEL: test_bzhi_i64: ; HASWELL: # %bb.0: -; HASWELL-NEXT: bzhiq %rdi, (%rdx), %rcx # sched: [1:0.50] +; HASWELL-NEXT: bzhiq %rdi, (%rdx), %rcx # sched: [6:0.50] ; HASWELL-NEXT: bzhiq %rdi, %rsi, %rax # sched: [1:0.50] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_bzhi_i64: ; BROADWELL: # %bb.0: @@ -87,10 +87,10 @@ define i64 @test_bzhi_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; KNL-LABEL: test_bzhi_i64: ; KNL: # %bb.0: -; KNL-NEXT: bzhiq %rdi, (%rdx), %rcx # sched: [1:0.50] +; KNL-NEXT: bzhiq %rdi, (%rdx), %rcx # sched: [6:0.50] ; KNL-NEXT: bzhiq %rdi, %rsi, %rax # sched: [1:0.50] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_bzhi_i64: ; ZNVER1: # %bb.0: @@ -123,9 +123,9 @@ define i64 @test_mulx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; HASWELL-NEXT: movq %rdx, %rax # sched: [1:0.25] ; HASWELL-NEXT: movq %rdi, %rdx # sched: [1:0.25] ; HASWELL-NEXT: mulxq %rsi, %rsi, %rcx # sched: [4:1.00] -; HASWELL-NEXT: mulxq (%rax), %rdx, %rax # sched: [4:1.00] +; HASWELL-NEXT: mulxq (%rax), %rdx, %rax # sched: [9:1.00] ; HASWELL-NEXT: orq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_mulx_i64: ; BROADWELL: # %bb.0: @@ -150,9 +150,9 @@ define i64 @test_mulx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; KNL-NEXT: movq %rdx, %rax # sched: [1:0.25] ; KNL-NEXT: movq %rdi, %rdx # sched: [1:0.25] ; KNL-NEXT: mulxq %rsi, %rsi, %rcx # sched: [4:1.00] -; KNL-NEXT: mulxq (%rax), %rdx, %rax # sched: [4:1.00] +; KNL-NEXT: mulxq (%rax), %rdx, %rax # sched: [9:1.00] ; KNL-NEXT: orq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_mulx_i64: ; ZNVER1: # %bb.0: @@ -186,10 +186,10 @@ define i32 @test_pdep_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; HASWELL-LABEL: test_pdep_i32: ; HASWELL: # %bb.0: -; HASWELL-NEXT: pdepl (%rdx), %edi, %ecx # sched: [3:1.00] +; HASWELL-NEXT: pdepl (%rdx), %edi, %ecx # sched: [8:1.00] ; HASWELL-NEXT: pdepl %esi, %edi, %eax # sched: [3:1.00] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_pdep_i32: ; BROADWELL: # %bb.0: @@ -207,10 +207,10 @@ define i32 @test_pdep_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; KNL-LABEL: test_pdep_i32: ; KNL: # %bb.0: -; KNL-NEXT: pdepl (%rdx), %edi, %ecx # sched: [3:1.00] +; KNL-NEXT: pdepl (%rdx), %edi, %ecx # sched: [8:1.00] ; KNL-NEXT: pdepl %esi, %edi, %eax # sched: [3:1.00] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_pdep_i32: ; ZNVER1: # %bb.0: @@ -236,10 +236,10 @@ define i64 @test_pdep_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; HASWELL-LABEL: test_pdep_i64: ; HASWELL: # %bb.0: -; HASWELL-NEXT: pdepq (%rdx), %rdi, %rcx # sched: [3:1.00] +; HASWELL-NEXT: pdepq (%rdx), %rdi, %rcx # sched: [8:1.00] ; HASWELL-NEXT: pdepq %rsi, %rdi, %rax # sched: [3:1.00] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_pdep_i64: ; BROADWELL: # %bb.0: @@ -257,10 +257,10 @@ define i64 @test_pdep_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; KNL-LABEL: test_pdep_i64: ; KNL: # %bb.0: -; KNL-NEXT: pdepq (%rdx), %rdi, %rcx # sched: [3:1.00] +; KNL-NEXT: pdepq (%rdx), %rdi, %rcx # sched: [8:1.00] ; KNL-NEXT: pdepq %rsi, %rdi, %rax # sched: [3:1.00] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_pdep_i64: ; ZNVER1: # %bb.0: @@ -286,10 +286,10 @@ define i32 @test_pext_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; HASWELL-LABEL: test_pext_i32: ; HASWELL: # %bb.0: -; HASWELL-NEXT: pextl (%rdx), %edi, %ecx # sched: [3:1.00] +; HASWELL-NEXT: pextl (%rdx), %edi, %ecx # sched: [8:1.00] ; HASWELL-NEXT: pextl %esi, %edi, %eax # sched: [3:1.00] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_pext_i32: ; BROADWELL: # %bb.0: @@ -307,10 +307,10 @@ define i32 @test_pext_i32(i32 %a0, i32 %a1, i32 *%a2) { ; ; KNL-LABEL: test_pext_i32: ; KNL: # %bb.0: -; KNL-NEXT: pextl (%rdx), %edi, %ecx # sched: [3:1.00] +; KNL-NEXT: pextl (%rdx), %edi, %ecx # sched: [8:1.00] ; KNL-NEXT: pextl %esi, %edi, %eax # sched: [3:1.00] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_pext_i32: ; ZNVER1: # %bb.0: @@ -336,10 +336,10 @@ define i64 @test_pext_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; HASWELL-LABEL: test_pext_i64: ; HASWELL: # %bb.0: -; HASWELL-NEXT: pextq (%rdx), %rdi, %rcx # sched: [3:1.00] +; HASWELL-NEXT: pextq (%rdx), %rdi, %rcx # sched: [8:1.00] ; HASWELL-NEXT: pextq %rsi, %rdi, %rax # sched: [3:1.00] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_pext_i64: ; BROADWELL: # %bb.0: @@ -357,10 +357,10 @@ define i64 @test_pext_i64(i64 %a0, i64 %a1, i64 *%a2) { ; ; KNL-LABEL: test_pext_i64: ; KNL: # %bb.0: -; KNL-NEXT: pextq (%rdx), %rdi, %rcx # sched: [3:1.00] +; KNL-NEXT: pextq (%rdx), %rdi, %rcx # sched: [8:1.00] ; KNL-NEXT: pextq %rsi, %rdi, %rax # sched: [3:1.00] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_pext_i64: ; ZNVER1: # %bb.0: @@ -387,9 +387,9 @@ define i32 @test_rorx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; HASWELL-LABEL: test_rorx_i32: ; HASWELL: # %bb.0: ; HASWELL-NEXT: rorxl $5, %edi, %ecx # sched: [1:0.50] -; HASWELL-NEXT: rorxl $5, (%rdx), %eax # sched: [1:0.50] +; HASWELL-NEXT: rorxl $5, (%rdx), %eax # sched: [6:0.50] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_rorx_i32: ; BROADWELL: # %bb.0: @@ -408,9 +408,9 @@ define i32 @test_rorx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; KNL-LABEL: test_rorx_i32: ; KNL: # %bb.0: ; KNL-NEXT: rorxl $5, %edi, %ecx # sched: [1:0.50] -; KNL-NEXT: rorxl $5, (%rdx), %eax # sched: [1:0.50] +; KNL-NEXT: rorxl $5, (%rdx), %eax # sched: [6:0.50] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_rorx_i32: ; ZNVER1: # %bb.0: @@ -440,9 +440,9 @@ define i64 @test_rorx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; HASWELL-LABEL: test_rorx_i64: ; HASWELL: # %bb.0: ; HASWELL-NEXT: rorxq $5, %rdi, %rcx # sched: [1:0.50] -; HASWELL-NEXT: rorxq $5, (%rdx), %rax # sched: [1:0.50] +; HASWELL-NEXT: rorxq $5, (%rdx), %rax # sched: [6:0.50] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_rorx_i64: ; BROADWELL: # %bb.0: @@ -461,9 +461,9 @@ define i64 @test_rorx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; KNL-LABEL: test_rorx_i64: ; KNL: # %bb.0: ; KNL-NEXT: rorxq $5, %rdi, %rcx # sched: [1:0.50] -; KNL-NEXT: rorxq $5, (%rdx), %rax # sched: [1:0.50] +; KNL-NEXT: rorxq $5, (%rdx), %rax # sched: [6:0.50] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_rorx_i64: ; ZNVER1: # %bb.0: @@ -493,9 +493,9 @@ define i32 @test_sarx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; HASWELL-LABEL: test_sarx_i32: ; HASWELL: # %bb.0: ; HASWELL-NEXT: sarxl %esi, %edi, %ecx # sched: [1:0.50] -; HASWELL-NEXT: sarxl %esi, (%rdx), %eax # sched: [1:0.50] +; HASWELL-NEXT: sarxl %esi, (%rdx), %eax # sched: [6:0.50] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_sarx_i32: ; BROADWELL: # %bb.0: @@ -514,9 +514,9 @@ define i32 @test_sarx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; KNL-LABEL: test_sarx_i32: ; KNL: # %bb.0: ; KNL-NEXT: sarxl %esi, %edi, %ecx # sched: [1:0.50] -; KNL-NEXT: sarxl %esi, (%rdx), %eax # sched: [1:0.50] +; KNL-NEXT: sarxl %esi, (%rdx), %eax # sched: [6:0.50] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_sarx_i32: ; ZNVER1: # %bb.0: @@ -542,9 +542,9 @@ define i64 @test_sarx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; HASWELL-LABEL: test_sarx_i64: ; HASWELL: # %bb.0: ; HASWELL-NEXT: sarxq %rsi, %rdi, %rcx # sched: [1:0.50] -; HASWELL-NEXT: sarxq %rsi, (%rdx), %rax # sched: [1:0.50] +; HASWELL-NEXT: sarxq %rsi, (%rdx), %rax # sched: [6:0.50] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_sarx_i64: ; BROADWELL: # %bb.0: @@ -563,9 +563,9 @@ define i64 @test_sarx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; KNL-LABEL: test_sarx_i64: ; KNL: # %bb.0: ; KNL-NEXT: sarxq %rsi, %rdi, %rcx # sched: [1:0.50] -; KNL-NEXT: sarxq %rsi, (%rdx), %rax # sched: [1:0.50] +; KNL-NEXT: sarxq %rsi, (%rdx), %rax # sched: [6:0.50] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_sarx_i64: ; ZNVER1: # %bb.0: @@ -591,9 +591,9 @@ define i32 @test_shlx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; HASWELL-LABEL: test_shlx_i32: ; HASWELL: # %bb.0: ; HASWELL-NEXT: shlxl %esi, %edi, %ecx # sched: [1:0.50] -; HASWELL-NEXT: shlxl %esi, (%rdx), %eax # sched: [1:0.50] +; HASWELL-NEXT: shlxl %esi, (%rdx), %eax # sched: [6:0.50] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_shlx_i32: ; BROADWELL: # %bb.0: @@ -612,9 +612,9 @@ define i32 @test_shlx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; KNL-LABEL: test_shlx_i32: ; KNL: # %bb.0: ; KNL-NEXT: shlxl %esi, %edi, %ecx # sched: [1:0.50] -; KNL-NEXT: shlxl %esi, (%rdx), %eax # sched: [1:0.50] +; KNL-NEXT: shlxl %esi, (%rdx), %eax # sched: [6:0.50] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_shlx_i32: ; ZNVER1: # %bb.0: @@ -640,9 +640,9 @@ define i64 @test_shlx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; HASWELL-LABEL: test_shlx_i64: ; HASWELL: # %bb.0: ; HASWELL-NEXT: shlxq %rsi, %rdi, %rcx # sched: [1:0.50] -; HASWELL-NEXT: shlxq %rsi, (%rdx), %rax # sched: [1:0.50] +; HASWELL-NEXT: shlxq %rsi, (%rdx), %rax # sched: [6:0.50] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_shlx_i64: ; BROADWELL: # %bb.0: @@ -661,9 +661,9 @@ define i64 @test_shlx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; KNL-LABEL: test_shlx_i64: ; KNL: # %bb.0: ; KNL-NEXT: shlxq %rsi, %rdi, %rcx # sched: [1:0.50] -; KNL-NEXT: shlxq %rsi, (%rdx), %rax # sched: [1:0.50] +; KNL-NEXT: shlxq %rsi, (%rdx), %rax # sched: [6:0.50] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_shlx_i64: ; ZNVER1: # %bb.0: @@ -689,9 +689,9 @@ define i32 @test_shrx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; HASWELL-LABEL: test_shrx_i32: ; HASWELL: # %bb.0: ; HASWELL-NEXT: shrxl %esi, %edi, %ecx # sched: [1:0.50] -; HASWELL-NEXT: shrxl %esi, (%rdx), %eax # sched: [1:0.50] +; HASWELL-NEXT: shrxl %esi, (%rdx), %eax # sched: [6:0.50] ; HASWELL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_shrx_i32: ; BROADWELL: # %bb.0: @@ -710,9 +710,9 @@ define i32 @test_shrx_i32(i32 %a0, i32 %a1, i32 *%a2) { ; KNL-LABEL: test_shrx_i32: ; KNL: # %bb.0: ; KNL-NEXT: shrxl %esi, %edi, %ecx # sched: [1:0.50] -; KNL-NEXT: shrxl %esi, (%rdx), %eax # sched: [1:0.50] +; KNL-NEXT: shrxl %esi, (%rdx), %eax # sched: [6:0.50] ; KNL-NEXT: addl %ecx, %eax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_shrx_i32: ; ZNVER1: # %bb.0: @@ -738,9 +738,9 @@ define i64 @test_shrx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; HASWELL-LABEL: test_shrx_i64: ; HASWELL: # %bb.0: ; HASWELL-NEXT: shrxq %rsi, %rdi, %rcx # sched: [1:0.50] -; HASWELL-NEXT: shrxq %rsi, (%rdx), %rax # sched: [1:0.50] +; HASWELL-NEXT: shrxq %rsi, (%rdx), %rax # sched: [6:0.50] ; HASWELL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; HASWELL-NEXT: retq # sched: [2:1.00] +; HASWELL-NEXT: retq # sched: [7:1.00] ; ; BROADWELL-LABEL: test_shrx_i64: ; BROADWELL: # %bb.0: @@ -759,9 +759,9 @@ define i64 @test_shrx_i64(i64 %a0, i64 %a1, i64 *%a2) { ; KNL-LABEL: test_shrx_i64: ; KNL: # %bb.0: ; KNL-NEXT: shrxq %rsi, %rdi, %rcx # sched: [1:0.50] -; KNL-NEXT: shrxq %rsi, (%rdx), %rax # sched: [1:0.50] +; KNL-NEXT: shrxq %rsi, (%rdx), %rax # sched: [6:0.50] ; KNL-NEXT: addq %rcx, %rax # sched: [1:0.25] -; KNL-NEXT: retq # sched: [2:1.00] +; KNL-NEXT: retq # sched: [7:1.00] ; ; ZNVER1-LABEL: test_shrx_i64: ; ZNVER1: # %bb.0: |