[llvm] r345463 - AMD BdVer2 (Piledriver) Initial Scheduler model
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 27 13:46:31 PDT 2018
Modified: llvm/trunk/test/CodeGen/X86/xop-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/xop-schedule.ll?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/xop-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/xop-schedule.ll Sat Oct 27 13:46:30 2018
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+xop | FileCheck %s --check-prefix=GENERIC
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+xop | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER12 --check-prefix=BDVER1
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+xop | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER12 --check-prefix=BDVER2
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver1 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER12 --check-prefix=BDVER1
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver2 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER12 --check-prefix=BDVER2
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver3 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER3
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver4 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER4
@@ -20,13 +20,13 @@ define void @test_vfrczpd(<2 x double> %
; BDVER12-LABEL: test_vfrczpd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vfrczpd %xmm0, %xmm0 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczpd %ymm1, %ymm1 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczpd (%rdi), %xmm0 # sched: [9:1.00]
-; BDVER12-NEXT: vfrczpd (%rsi), %ymm1 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczpd %xmm0, %xmm0 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczpd %ymm1, %ymm1 # sched: [10:2.00]
+; BDVER12-NEXT: vfrczpd (%rdi), %xmm0 # sched: [15:1.00]
+; BDVER12-NEXT: vfrczpd (%rsi), %ymm1 # sched: [15:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: vzeroupper # sched: [100:0.33]
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: vzeroupper # sched: [46:4.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vfrczpd:
; BDVER3: # %bb.0:
@@ -68,13 +68,13 @@ define void @test_vfrczps(<4 x float> %a
; BDVER12-LABEL: test_vfrczps:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vfrczps %xmm0, %xmm0 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczps %ymm1, %ymm1 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczps (%rdi), %xmm0 # sched: [9:1.00]
-; BDVER12-NEXT: vfrczps (%rsi), %ymm1 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczps %xmm0, %xmm0 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczps %ymm1, %ymm1 # sched: [10:2.00]
+; BDVER12-NEXT: vfrczps (%rdi), %xmm0 # sched: [15:1.00]
+; BDVER12-NEXT: vfrczps (%rsi), %ymm1 # sched: [15:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: vzeroupper # sched: [100:0.33]
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: vzeroupper # sched: [46:4.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vfrczps:
; BDVER3: # %bb.0:
@@ -113,10 +113,10 @@ define void @test_vfrczsd(<2 x double> %
; BDVER12-LABEL: test_vfrczsd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vfrczsd %xmm0, %xmm0 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczsd (%rdi), %xmm0 # sched: [9:1.00]
+; BDVER12-NEXT: vfrczsd %xmm0, %xmm0 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczsd (%rdi), %xmm0 # sched: [15:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vfrczsd:
; BDVER3: # %bb.0:
@@ -149,10 +149,10 @@ define void @test_vfrczss(<4 x float> %a
; BDVER12-LABEL: test_vfrczss:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vfrczss %xmm0, %xmm0 # sched: [3:1.00]
-; BDVER12-NEXT: vfrczss (%rdi), %xmm0 # sched: [9:1.00]
+; BDVER12-NEXT: vfrczss %xmm0, %xmm0 # sched: [10:1.00]
+; BDVER12-NEXT: vfrczss (%rdi), %xmm0 # sched: [15:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vfrczss:
; BDVER3: # %bb.0:
@@ -186,11 +186,11 @@ define void @test_vpcmov_128(<2 x i64> %
; BDVER12-LABEL: test_vpcmov_128:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
+; BDVER12-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
; BDVER12-NEXT: vpcmov (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcmov %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpcmov_128:
; BDVER3: # %bb.0:
@@ -227,12 +227,12 @@ define void @test_vpcmov_256(<4 x i64> %
; BDVER12-LABEL: test_vpcmov_256:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpcmov %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpcmov (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00]
-; BDVER12-NEXT: vpcmov %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
+; BDVER12-NEXT: vpcmov %ymm2, %ymm1, %ymm0, %ymm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcmov (%rdi), %ymm1, %ymm0, %ymm0 # sched: [7:1.00]
+; BDVER12-NEXT: vpcmov %ymm2, (%rdi), %ymm0, %ymm0 # sched: [7:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: vzeroupper # sched: [100:0.33]
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: vzeroupper # sched: [46:4.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpcmov_256:
; BDVER3: # %bb.0:
@@ -275,16 +275,16 @@ define void @test_vpcom(<2 x i64> %a0, <
; BDVER12-LABEL: test_vpcom:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
+; BDVER12-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
; BDVER12-NEXT: vpcomb $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomd $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomq $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomw $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpcom:
; BDVER3: # %bb.0:
@@ -335,16 +335,16 @@ define void @test_vpcomu(<2 x i64> %a0,
; BDVER12-LABEL: test_vpcomu:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
+; BDVER12-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 # sched: [2:0.50]
; BDVER12-NEXT: vpcomub $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomud $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomuq $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: vpcomuw $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpcomu:
; BDVER3: # %bb.0:
@@ -390,11 +390,11 @@ define void @test_vpermil2pd_128(<2 x do
; BDVER12-LABEL: test_vpermil2pd_128:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpermil2pd $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpermil2pd $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpermil2pd $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
+; BDVER12-NEXT: vpermil2pd $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [3:2.00]
+; BDVER12-NEXT: vpermil2pd $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [8:2.00]
+; BDVER12-NEXT: vpermil2pd $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [8:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpermil2pd_128:
; BDVER3: # %bb.0:
@@ -431,12 +431,12 @@ define void @test_vpermil2pd_256(<4 x do
; BDVER12-LABEL: test_vpermil2pd_256:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpermil2pd $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpermil2pd $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
-; BDVER12-NEXT: vpermil2pd $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00]
+; BDVER12-NEXT: vpermil2pd $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [3:3.00]
+; BDVER12-NEXT: vpermil2pd $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:3.00]
+; BDVER12-NEXT: vpermil2pd $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:3.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: vzeroupper # sched: [100:0.33]
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: vzeroupper # sched: [46:4.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpermil2pd_256:
; BDVER3: # %bb.0:
@@ -474,11 +474,11 @@ define void @test_vpermil2ps_128(<4 x fl
; BDVER12-LABEL: test_vpermil2ps_128:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpermil2ps $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpermil2ps $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpermil2ps $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
+; BDVER12-NEXT: vpermil2ps $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [3:2.00]
+; BDVER12-NEXT: vpermil2ps $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [8:2.00]
+; BDVER12-NEXT: vpermil2ps $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [8:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpermil2ps_128:
; BDVER3: # %bb.0:
@@ -515,12 +515,12 @@ define void @test_vpermil2ps_256(<8 x fl
; BDVER12-LABEL: test_vpermil2ps_256:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpermil2ps $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpermil2ps $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
-; BDVER12-NEXT: vpermil2ps $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00]
+; BDVER12-NEXT: vpermil2ps $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [3:3.00]
+; BDVER12-NEXT: vpermil2ps $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:3.00]
+; BDVER12-NEXT: vpermil2ps $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:3.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: vzeroupper # sched: [100:0.33]
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: vzeroupper # sched: [46:4.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpermil2ps_256:
; BDVER3: # %bb.0:
@@ -557,10 +557,10 @@ define void @test_vphaddbd(<2 x i64> %a0
; BDVER12-LABEL: test_vphaddbd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddbd %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddbd (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddbd %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddbd (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddbd:
; BDVER3: # %bb.0:
@@ -593,10 +593,10 @@ define void @test_vphaddbq(<2 x i64> %a0
; BDVER12-LABEL: test_vphaddbq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddbq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddbq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddbq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddbq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddbq:
; BDVER3: # %bb.0:
@@ -629,10 +629,10 @@ define void @test_vphaddbw(<2 x i64> %a0
; BDVER12-LABEL: test_vphaddbw:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddbw %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddbw (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddbw %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddbw (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddbw:
; BDVER3: # %bb.0:
@@ -665,10 +665,10 @@ define void @test_vphadddq(<2 x i64> %a0
; BDVER12-LABEL: test_vphadddq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphadddq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphadddq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphadddq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphadddq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphadddq:
; BDVER3: # %bb.0:
@@ -701,10 +701,10 @@ define void @test_vphaddubd(<2 x i64> %a
; BDVER12-LABEL: test_vphaddubd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddubd %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddubd (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddubd %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddubd (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddubd:
; BDVER3: # %bb.0:
@@ -737,10 +737,10 @@ define void @test_vphaddubq(<2 x i64> %a
; BDVER12-LABEL: test_vphaddubq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddubq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddubq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddubq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddubq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddubq:
; BDVER3: # %bb.0:
@@ -773,10 +773,10 @@ define void @test_vphaddubw(<2 x i64> %a
; BDVER12-LABEL: test_vphaddubw:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddubw %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddubw (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddubw %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddubw (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddubw:
; BDVER3: # %bb.0:
@@ -809,10 +809,10 @@ define void @test_vphaddudq(<2 x i64> %a
; BDVER12-LABEL: test_vphaddudq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddudq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddudq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddudq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddudq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddudq:
; BDVER3: # %bb.0:
@@ -845,10 +845,10 @@ define void @test_vphadduwd(<2 x i64> %a
; BDVER12-LABEL: test_vphadduwd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphadduwd %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphadduwd (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphadduwd %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphadduwd (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphadduwd:
; BDVER3: # %bb.0:
@@ -881,10 +881,10 @@ define void @test_vphadduwq(<2 x i64> %a
; BDVER12-LABEL: test_vphadduwq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphadduwq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphadduwq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphadduwq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphadduwq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphadduwq:
; BDVER3: # %bb.0:
@@ -917,10 +917,10 @@ define void @test_vphaddwd(<2 x i64> %a0
; BDVER12-LABEL: test_vphaddwd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddwd %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddwd (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddwd %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddwd (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddwd:
; BDVER3: # %bb.0:
@@ -953,10 +953,10 @@ define void @test_vphaddwq(<2 x i64> %a0
; BDVER12-LABEL: test_vphaddwq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphaddwq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphaddwq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphaddwq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphaddwq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphaddwq:
; BDVER3: # %bb.0:
@@ -989,10 +989,10 @@ define void @test_vphsubbw(<2 x i64> %a0
; BDVER12-LABEL: test_vphsubbw:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphsubbw %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphsubbw (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphsubbw %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphsubbw (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphsubbw:
; BDVER3: # %bb.0:
@@ -1025,10 +1025,10 @@ define void @test_vphsubdq(<2 x i64> %a0
; BDVER12-LABEL: test_vphsubdq:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphsubdq %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphsubdq (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphsubdq %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphsubdq (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphsubdq:
; BDVER3: # %bb.0:
@@ -1061,10 +1061,10 @@ define void @test_vphsubwd(<2 x i64> %a0
; BDVER12-LABEL: test_vphsubwd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vphsubwd %xmm0, %xmm0 # sched: [3:1.50]
-; BDVER12-NEXT: vphsubwd (%rdi), %xmm0 # sched: [9:1.50]
+; BDVER12-NEXT: vphsubwd %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vphsubwd (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vphsubwd:
; BDVER3: # %bb.0:
@@ -1097,10 +1097,10 @@ define void @test_vpmacsdd(<2 x i64> %a0
; BDVER12-LABEL: test_vpmacsdd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacsdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacsdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacsdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:2.00]
+; BDVER12-NEXT: vpmacsdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacsdd:
; BDVER3: # %bb.0:
@@ -1133,10 +1133,10 @@ define void @test_vpmacsdqh(<2 x i64> %a
; BDVER12-LABEL: test_vpmacsdqh:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacsdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacsdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacsdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:2.00]
+; BDVER12-NEXT: vpmacsdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacsdqh:
; BDVER3: # %bb.0:
@@ -1169,10 +1169,10 @@ define void @test_vpmacsdql(<2 x i64> %a
; BDVER12-LABEL: test_vpmacsdql:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacsdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacsdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacsdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:2.00]
+; BDVER12-NEXT: vpmacsdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacsdql:
; BDVER3: # %bb.0:
@@ -1205,10 +1205,10 @@ define void @test_vpmacssdd(<2 x i64> %a
; BDVER12-LABEL: test_vpmacssdd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacssdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacssdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacssdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:2.00]
+; BDVER12-NEXT: vpmacssdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacssdd:
; BDVER3: # %bb.0:
@@ -1241,10 +1241,10 @@ define void @test_vpmacssdqh(<2 x i64> %
; BDVER12-LABEL: test_vpmacssdqh:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacssdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacssdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacssdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:2.00]
+; BDVER12-NEXT: vpmacssdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacssdqh:
; BDVER3: # %bb.0:
@@ -1277,10 +1277,10 @@ define void @test_vpmacssdql(<2 x i64> %
; BDVER12-LABEL: test_vpmacssdql:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacssdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacssdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacssdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:2.00]
+; BDVER12-NEXT: vpmacssdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [10:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacssdql:
; BDVER3: # %bb.0:
@@ -1313,10 +1313,10 @@ define void @test_vpmacsswd(<2 x i64> %a
; BDVER12-LABEL: test_vpmacsswd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmacsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacsswd:
; BDVER3: # %bb.0:
@@ -1349,10 +1349,10 @@ define void @test_vpmacssww(<2 x i64> %a
; BDVER12-LABEL: test_vpmacssww:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacssww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacssww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacssww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmacssww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacssww:
; BDVER3: # %bb.0:
@@ -1385,10 +1385,10 @@ define void @test_vpmacswd(<2 x i64> %a0
; BDVER12-LABEL: test_vpmacswd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmacswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacswd:
; BDVER3: # %bb.0:
@@ -1421,10 +1421,10 @@ define void @test_vpmacsww(<2 x i64> %a0
; BDVER12-LABEL: test_vpmacsww:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmacsww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmacsww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmacsww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmacsww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmacsww:
; BDVER3: # %bb.0:
@@ -1457,10 +1457,10 @@ define void @test_vpmadcsswd(<2 x i64> %
; BDVER12-LABEL: test_vpmadcsswd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmadcsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmadcsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmadcsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmadcsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmadcsswd:
; BDVER3: # %bb.0:
@@ -1493,10 +1493,10 @@ define void @test_vpmadcswd(<2 x i64> %a
; BDVER12-LABEL: test_vpmadcswd:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpmadcswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; BDVER12-NEXT: vpmadcswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; BDVER12-NEXT: vpmadcswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [4:1.00]
+; BDVER12-NEXT: vpmadcswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpmadcswd:
; BDVER3: # %bb.0:
@@ -1530,11 +1530,11 @@ define void @test_vpperm(<2 x i64> %a0,
; BDVER12-LABEL: test_vpperm:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:0.50]
-; BDVER12-NEXT: vpperm (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:0.50]
-; BDVER12-NEXT: vpperm %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:0.50]
+; BDVER12-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm0 # sched: [3:2.00]
+; BDVER12-NEXT: vpperm (%rdi), %xmm1, %xmm0, %xmm0 # sched: [8:2.00]
+; BDVER12-NEXT: vpperm %xmm2, (%rdi), %xmm0, %xmm0 # sched: [8:2.00]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpperm:
; BDVER3: # %bb.0:
@@ -1587,28 +1587,28 @@ define void @test_vprot(<2 x i64> %a0, <
; BDVER12-LABEL: test_vprot:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vprotb %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotd %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotq %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotw %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotb (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotd (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotq (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotw (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotb %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotd %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotq %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotw %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotb $7, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotd $7, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotq $7, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotw $7, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vprotb $7, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotd $7, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotq $7, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vprotw $7, (%rdi), %xmm0 # sched: [7:1.00]
+; BDVER12-NEXT: vprotb %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vprotd %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vprotq %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vprotw %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vprotb (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotd (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotq (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotw (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotb %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotd %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotq %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotw %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vprotb $7, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vprotd $7, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vprotq $7, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vprotw $7, %xmm0, %xmm0 # sched: [2:0.50]
+; BDVER12-NEXT: vprotb $7, (%rdi), %xmm0 # sched: [7:0.50]
+; BDVER12-NEXT: vprotd $7, (%rdi), %xmm0 # sched: [7:0.50]
+; BDVER12-NEXT: vprotq $7, (%rdi), %xmm0 # sched: [7:0.50]
+; BDVER12-NEXT: vprotw $7, (%rdi), %xmm0 # sched: [7:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vprot:
; BDVER3: # %bb.0:
@@ -1687,20 +1687,20 @@ define void @test_vpsha(<2 x i64> %a0, <
; BDVER12-LABEL: test_vpsha:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpshab %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshad %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshaq %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshaw %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshab (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshad (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshaq (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshaw (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshab %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshad %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshaq %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshaw %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
+; BDVER12-NEXT: vpshab %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshad %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshaq %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshaw %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshab (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshad (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshaq (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshaw (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshab %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshad %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshaq %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshaw %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpsha:
; BDVER3: # %bb.0:
@@ -1763,20 +1763,20 @@ define void @test_vpshl(<2 x i64> %a0, <
; BDVER12-LABEL: test_vpshl:
; BDVER12: # %bb.0:
; BDVER12-NEXT: #APP
-; BDVER12-NEXT: vpshlb %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshld %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshlq %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshlw %xmm1, %xmm0, %xmm0 # sched: [1:1.00]
-; BDVER12-NEXT: vpshlb (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshld (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshlq (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshlw (%rdi), %xmm0, %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshlb %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshld %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshlq %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
-; BDVER12-NEXT: vpshlw %xmm0, (%rdi), %xmm0 # sched: [7:1.00]
+; BDVER12-NEXT: vpshlb %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshld %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshlq %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshlw %xmm1, %xmm0, %xmm0 # sched: [3:0.50]
+; BDVER12-NEXT: vpshlb (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshld (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshlq (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshlw (%rdi), %xmm0, %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshlb %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshld %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshlq %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
+; BDVER12-NEXT: vpshlw %xmm0, (%rdi), %xmm0 # sched: [8:0.50]
; BDVER12-NEXT: #NO_APP
-; BDVER12-NEXT: retq # sched: [1:1.00]
+; BDVER12-NEXT: retq # sched: [5:1.00]
;
; BDVER3-LABEL: test_vpshl:
; BDVER3: # %bb.0:
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1000 -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1000 -timeline < %s | FileCheck %s
add %eax, %ecx
add %esi, %eax
@@ -7,13 +7,13 @@ add %eax, %edx
# CHECK: Iterations: 1000
# CHECK-NEXT: Instructions: 3000
-# CHECK-NEXT: Total Cycles: 1004
+# CHECK-NEXT: Total Cycles: 1504
# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 2.99
-# CHECK-NEXT: IPC: 2.99
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 1.99
+# CHECK-NEXT: IPC: 1.99
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,64 +24,76 @@ add %eax, %edx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 addl %eax, %ecx
-# CHECK-NEXT: 1 1 0.33 addl %esi, %eax
-# CHECK-NEXT: 1 1 0.33 addl %eax, %edx
+# CHECK-NEXT: 1 1 0.50 addl %eax, %ecx
+# CHECK-NEXT: 1 1 0.50 addl %esi, %eax
+# CHECK-NEXT: 1 1 0.50 addl %eax, %edx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - addl %eax, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - addl %esi, %eax
-# CHECK-NEXT: - - 1.00 - - - - - addl %eax, %edx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %eax, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %esi, %eax
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %eax, %edx
# CHECK: Timeline view:
-# CHECK-NEXT: 0123
+# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . addl %eax, %ecx
-# CHECK-NEXT: [0,1] DeER . . . addl %esi, %eax
-# CHECK-NEXT: [0,2] D=eER. . . addl %eax, %edx
-# CHECK-NEXT: [1,0] D=eER. . . addl %eax, %ecx
-# CHECK-NEXT: [1,1] .DeER. . . addl %esi, %eax
-# CHECK-NEXT: [1,2] .D=eER . . addl %eax, %edx
-# CHECK-NEXT: [2,0] .D=eER . . addl %eax, %ecx
-# CHECK-NEXT: [2,1] .D=eER . . addl %esi, %eax
-# CHECK-NEXT: [2,2] . D=eER . . addl %eax, %edx
-# CHECK-NEXT: [3,0] . D=eER . . addl %eax, %ecx
-# CHECK-NEXT: [3,1] . D=eER . . addl %esi, %eax
-# CHECK-NEXT: [3,2] . D==eER . . addl %eax, %edx
-# CHECK-NEXT: [4,0] . D=eER . . addl %eax, %ecx
-# CHECK-NEXT: [4,1] . D=eER . . addl %esi, %eax
-# CHECK-NEXT: [4,2] . D==eER . . addl %eax, %edx
-# CHECK-NEXT: [5,0] . D==eER . . addl %eax, %ecx
-# CHECK-NEXT: [5,1] . D=eER . . addl %esi, %eax
-# CHECK-NEXT: [5,2] . D==eER. . addl %eax, %edx
-# CHECK-NEXT: [6,0] . D==eER. . addl %eax, %ecx
-# CHECK-NEXT: [6,1] . D==eER. . addl %esi, %eax
-# CHECK-NEXT: [6,2] . D==eER . addl %eax, %edx
-# CHECK-NEXT: [7,0] . D==eER . addl %eax, %ecx
-# CHECK-NEXT: [7,1] . D==eER . addl %esi, %eax
-# CHECK-NEXT: [7,2] . D===eER . addl %eax, %edx
-# CHECK-NEXT: [8,0] . .D==eER . addl %eax, %ecx
-# CHECK-NEXT: [8,1] . .D==eER . addl %esi, %eax
-# CHECK-NEXT: [8,2] . .D===eER. addl %eax, %edx
-# CHECK-NEXT: [9,0] . .D===eER. addl %eax, %ecx
-# CHECK-NEXT: [9,1] . . D==eER. addl %esi, %eax
-# CHECK-NEXT: [9,2] . . D===eER addl %eax, %edx
+# CHECK: [0,0] DeER . . . . addl %eax, %ecx
+# CHECK-NEXT: [0,1] DeER . . . . addl %esi, %eax
+# CHECK-NEXT: [0,2] D=eER. . . . addl %eax, %edx
+# CHECK-NEXT: [1,0] D==eER . . . addl %eax, %ecx
+# CHECK-NEXT: [1,1] .DeE-R . . . addl %esi, %eax
+# CHECK-NEXT: [1,2] .D=eER . . . addl %eax, %edx
+# CHECK-NEXT: [2,0] .D==eER . . . addl %eax, %ecx
+# CHECK-NEXT: [2,1] .D==eER . . . addl %esi, %eax
+# CHECK-NEXT: [2,2] . D==eER . . . addl %eax, %edx
+# CHECK-NEXT: [3,0] . D===eER . . . addl %eax, %ecx
+# CHECK-NEXT: [3,1] . D==eE-R . . . addl %esi, %eax
+# CHECK-NEXT: [3,2] . D===eER . . . addl %eax, %edx
+# CHECK-NEXT: [4,0] . D===eER. . . addl %eax, %ecx
+# CHECK-NEXT: [4,1] . D===eER. . . addl %esi, %eax
+# CHECK-NEXT: [4,2] . D====eER . . addl %eax, %edx
+# CHECK-NEXT: [5,0] . D=====eER . . addl %eax, %ecx
+# CHECK-NEXT: [5,1] . D===eE-R . . addl %esi, %eax
+# CHECK-NEXT: [5,2] . D====eER . . addl %eax, %edx
+# CHECK-NEXT: [6,0] . D=====eER . . addl %eax, %ecx
+# CHECK-NEXT: [6,1] . D=====eER . . addl %esi, %eax
+# CHECK-NEXT: [6,2] . D=====eER . . addl %eax, %edx
+# CHECK-NEXT: [7,0] . D======eER. . addl %eax, %ecx
+# CHECK-NEXT: [7,1] . D=====eE-R. . addl %esi, %eax
+# CHECK-NEXT: [7,2] . D======eER. . addl %eax, %edx
+# CHECK-NEXT: [8,0] . .D======eER . addl %eax, %ecx
+# CHECK-NEXT: [8,1] . .D======eER . addl %esi, %eax
+# CHECK-NEXT: [8,2] . .D=======eER. addl %eax, %edx
+# CHECK-NEXT: [9,0] . .D========eER addl %eax, %ecx
+# CHECK-NEXT: [9,1] . . D======eE-R addl %esi, %eax
+# CHECK-NEXT: [9,2] . . D=======eER addl %eax, %edx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -90,6 +102,6 @@ add %eax, %edx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 10 2.5 0.1 0.0 addl %eax, %ecx
-# CHECK-NEXT: 1. 10 2.2 0.1 0.0 addl %esi, %eax
-# CHECK-NEXT: 2. 10 3.0 0.0 0.0 addl %eax, %edx
+# CHECK-NEXT: 0. 10 5.0 0.6 0.0 addl %eax, %ecx
+# CHECK-NEXT: 1. 10 4.2 0.5 0.5 addl %esi, %eax
+# CHECK-NEXT: 2. 10 5.0 0.0 0.0 addl %eax, %edx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=2 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=2 < %s | FileCheck %s
## Sets register RAX.
imulq $5, %rcx, %rax
@@ -15,13 +15,13 @@ bsf %rax, %rcx
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 803
-# CHECK-NEXT: Total uOps: 400
+# CHECK-NEXT: Total Cycles: 702
+# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.50
-# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: uOps Per Cycle: 1.42
+# CHECK-NEXT: IPC: 0.57
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -32,23 +32,23 @@ bsf %rax, %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imulq $5, %rcx, %rax
-# CHECK-NEXT: 1 3 1.00 lzcntl %ecx, %eax
-# CHECK-NEXT: 1 1 0.33 andq %rcx, %rax
-# CHECK-NEXT: 1 3 1.00 bsfq %rax, %rcx
+# CHECK-NEXT: 1 6 4.00 imulq $5, %rcx, %rax
+# CHECK-NEXT: 2 2 0.50 lzcntl %ecx, %eax
+# CHECK-NEXT: 1 1 0.50 andq %rcx, %rax
+# CHECK-NEXT: 6 3 2.00 bsfq %rax, %rcx
# CHECK: Timeline view:
-# CHECK-NEXT: 012345678
+# CHECK-NEXT: 012345
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeER . . . imulq $5, %rcx, %rax
-# CHECK-NEXT: [0,1] D=eeeER . . . lzcntl %ecx, %eax
-# CHECK-NEXT: [0,2] D====eER . . . andq %rcx, %rax
-# CHECK-NEXT: [0,3] D=====eeeER . . bsfq %rax, %rcx
-# CHECK-NEXT: [1,0] .D=======eeeER . . imulq $5, %rcx, %rax
-# CHECK-NEXT: [1,1] .D========eeeER. . lzcntl %ecx, %eax
-# CHECK-NEXT: [1,2] .D===========eER . andq %rcx, %rax
-# CHECK-NEXT: [1,3] .D============eeeER bsfq %rax, %rcx
+# CHECK: [0,0] DeeeeeeER . . imulq $5, %rcx, %rax
+# CHECK-NEXT: [0,1] DeeE----R . . lzcntl %ecx, %eax
+# CHECK-NEXT: [0,2] D==eE---R . . andq %rcx, %rax
+# CHECK-NEXT: [0,3] .D==eeeER . . bsfq %rax, %rcx
+# CHECK-NEXT: [1,0] . D====eeeeeeER. imulq $5, %rcx, %rax
+# CHECK-NEXT: [1,1] . D====eeE---R. lzcntl %ecx, %eax
+# CHECK-NEXT: [1,2] . D======eE--R. andq %rcx, %rax
+# CHECK-NEXT: [1,3] . D======eeeER bsfq %rax, %rcx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -57,7 +57,7 @@ bsf %rax, %rcx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 4.5 0.5 0.0 imulq $5, %rcx, %rax
-# CHECK-NEXT: 1. 2 5.5 1.5 0.0 lzcntl %ecx, %eax
-# CHECK-NEXT: 2. 2 8.5 0.0 0.0 andq %rcx, %rax
-# CHECK-NEXT: 3. 2 9.5 0.0 0.0 bsfq %rax, %rcx
+# CHECK-NEXT: 0. 2 3.0 0.5 0.0 imulq $5, %rcx, %rax
+# CHECK-NEXT: 1. 2 3.0 1.0 3.5 lzcntl %ecx, %eax
+# CHECK-NEXT: 2. 2 5.0 0.0 2.5 andq %rcx, %rax
+# CHECK-NEXT: 3. 2 5.0 0.0 0.0 bsfq %rax, %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=2 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=100 -resource-pressure=false -timeline -timeline-max-iterations=2 < %s | FileCheck %s
# In this test, the VDIVPS takes 38 cycles to write to register YMM3. The first
# VADDPS does not depend on the VDIVPS (the WAW dependency is eliminated at
@@ -33,13 +33,13 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 1800
-# CHECK-NEXT: Total Cycles: 2804
-# CHECK-NEXT: Total uOps: 2000
+# CHECK-NEXT: Total Cycles: 4003
+# CHECK-NEXT: Total uOps: 3400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.71
-# CHECK-NEXT: IPC: 0.64
-# CHECK-NEXT: Block RThroughput: 28.0
+# CHECK-NEXT: uOps Per Cycle: 0.85
+# CHECK-NEXT: IPC: 0.45
+# CHECK-NEXT: Block RThroughput: 31.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -50,65 +50,63 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 3 29 28.00 vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 1 1.00 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 2 9 19.00 vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 1 2 0.50 vandps %xmm4, %xmm1, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789
-# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER . . . . . . vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: [0,1] DeeeE--------------------------R . . . . . . vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: [0,2] .D==eeeE-----------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,3] .D===eeeE----------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,4] .D====eeeE---------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,5] .D=====eeeE--------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,6] . D=====eeeE-------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,7] . D======eeeE------------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,8] . D=======eeeE-----------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,9] . D========eeeE----------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,10] . D========eeeE---------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,11] . D=========eeeE--------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,12] . D==========eeeE-------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,13] . D===========eeeE------------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,14] . D===========eeeE-----------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,15] . D============eeeE----------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,16] . D=============eeeE---------R . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,17] . D================eE--------R . . . . . . vandps %xmm4, %xmm1, %xmm0
-# CHECK-NEXT: [1,0] . D=======================eeeeeeeeeeeeeeeeeeeeeeeeeeeeeER vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: [1,1] . D================eeeE---------------------------------R vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: [1,2] . .D==================eeeE------------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,3] . .D===================eeeE-----------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,4] . .D====================eeeE----------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,5] . .D=====================eeeE---------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,6] . . D=====================eeeE--------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,7] . . D======================eeeE-------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,8] . . D=======================eeeE------------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,9] . . D========================eeeE-----------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,10] . . D========================eeeE----------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,11] . . D=========================eeeE---------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,12] . . D==========================eeeE--------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,13] . . D===========================eeeE-------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,14] . . D===========================eeeE------------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,15] . . D============================eeeE-----------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,16] . . D=============================eeeE----------------R vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,17] . . D================================eE---------------R vandps %xmm4, %xmm1, %xmm0
+# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . . . . . . . vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . . . . . . . vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: [0,2] .D====eeeeeER . . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,3] .D======eeeeeER. . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,4] . D=======eeeeeER . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,5] . D=========eeeeeER . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,6] . D==========eeeeeER . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,7] . D============eeeeeER . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,8] . D=============eeeeeER. . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,9] . D===============eeeeeER . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,10] . D================eeeeeER . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,11] . D==================eeeeeER . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,12] . .D===================eeeeeER . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,13] . .D=====================eeeeeER. . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,14] . . D======================eeeeeER . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,15] . . D========================eeeeeER . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,16] . . D=========================eeeeeER . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,17] . . D==============================eeER . . . . . . . . vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: [1,0] . . D===============================eeeeeeeeeER . . . . . . vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: [1,1] . . D===============================eeeeeE----R . . . . . . vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: [1,2] . . D===================================eeeeeER . . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,3] . . D=====================================eeeeeER. . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,4] . . .D======================================eeeeeER . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,5] . . .D========================================eeeeeER . . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,6] . . . D=========================================eeeeeER . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,7] . . . D===========================================eeeeeER . . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,8] . . . D============================================eeeeeER. . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,9] . . . D==============================================eeeeeER . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,10] . . . D===============================================eeeeeER . . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,11] . . . D=================================================eeeeeER . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,12] . . . D==================================================eeeeeER . . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,13] . . . D====================================================eeeeeER. . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,14] . . . .D=====================================================eeeeeER . vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,15] . . . .D=======================================================eeeeeER. vaddps %ymm3, %ymm1, %ymm4
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -117,21 +115,21 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 12.5 4.0 0.0 vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: 1. 2 9.0 0.5 29.5 vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: 2. 2 11.0 0.0 26.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 3. 2 12.0 1.0 25.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 4. 2 13.0 2.0 24.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 5. 2 14.0 3.0 23.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 6. 2 14.0 4.0 22.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 7. 2 15.0 5.0 21.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 8. 2 16.0 6.0 20.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 9. 2 17.0 7.0 19.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 10. 2 17.0 8.0 18.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 11. 2 18.0 9.0 17.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 12. 2 19.0 10.0 16.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 13. 2 20.0 11.0 15.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 14. 2 20.0 12.0 14.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 15. 2 21.0 13.0 13.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 16. 2 22.0 14.0 12.5 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 17. 2 25.0 0.0 11.5 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 0. 2 16.5 0.5 0.0 vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: 1. 2 16.5 0.5 4.0 vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: 2. 2 20.5 0.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 3. 2 22.5 2.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 4. 2 23.5 4.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 5. 2 25.5 6.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 6. 2 26.5 8.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 7. 2 28.5 10.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 8. 2 29.5 12.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 9. 2 31.5 14.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 10. 2 32.5 16.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 11. 2 34.5 18.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 12. 2 35.5 20.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 13. 2 37.5 22.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 14. 2 38.5 23.5 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 15. 2 40.5 25.5 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 16. 2 41.5 27.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 17. 2 46.5 0.0 0.0 vandps %xmm4, %xmm1, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
# Perf stat reports an IPC of 1.97 for this block of code.
@@ -11,13 +11,13 @@ cmovae %ebx, %eax
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 3000
-# CHECK-NEXT: Total Cycles: 4503
-# CHECK-NEXT: Total uOps: 4500
+# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 0.67
-# CHECK-NEXT: Block RThroughput: 0.8
+# CHECK-NEXT: uOps Per Cycle: 1.99
+# CHECK-NEXT: IPC: 1.99
+# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -28,38 +28,49 @@ cmovae %ebx, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 cmpl %eax, %eax
-# CHECK-NEXT: 2 2 0.67 cmovael %ebx, %eax
+# CHECK-NEXT: 1 1 0.50 cmpl %eax, %eax
+# CHECK-NEXT: 1 1 0.50 cmovael %ebx, %eax
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - 1.00 - - cmpl %eax, %eax
-# CHECK-NEXT: - - 1.00 1.00 - - - - cmovael %ebx, %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - cmpl %eax, %eax
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - cmovael %ebx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456
-# CHECK: [0,0] DeER . .. cmpl %eax, %eax
-# CHECK-NEXT: [0,1] D=eeER .. cmovael %ebx, %eax
-# CHECK-NEXT: [1,0] D===eER .. cmpl %eax, %eax
-# CHECK-NEXT: [1,1] .D===eeER .. cmovael %ebx, %eax
-# CHECK-NEXT: [2,0] .D=====eER.. cmpl %eax, %eax
-# CHECK-NEXT: [2,1] . D=====eeER cmovael %ebx, %eax
+# CHECK: [0,0] DeER .. cmpl %eax, %eax
+# CHECK-NEXT: [0,1] D=eER.. cmovael %ebx, %eax
+# CHECK-NEXT: [1,0] DeE-R.. cmpl %eax, %eax
+# CHECK-NEXT: [1,1] D==eER. cmovael %ebx, %eax
+# CHECK-NEXT: [2,0] .DeE-R. cmpl %eax, %eax
+# CHECK-NEXT: [2,1] .D==eER cmovael %ebx, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -68,5 +79,5 @@ cmovae %ebx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 3.7 0.3 0.0 cmpl %eax, %eax
-# CHECK-NEXT: 1. 3 4.0 0.0 0.0 cmovael %ebx, %eax
+# CHECK-NEXT: 0. 3 1.0 1.0 0.7 cmpl %eax, %eax
+# CHECK-NEXT: 1. 3 2.7 0.0 0.0 cmovael %ebx, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
# perf stat reports an IPC of 2.00 for this block of code.
@@ -14,12 +14,12 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 6000
-# CHECK-NEXT: Total Cycles: 6003
+# CHECK-NEXT: Total Cycles: 3005
# CHECK-NEXT: Total uOps: 6000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: uOps Per Cycle: 2.00
+# CHECK-NEXT: IPC: 2.00
# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
@@ -31,48 +31,60 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 1 1 0.50 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 2.00 - 2.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 2.00 2.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - - - - vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - 1.00 - - - - vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 1.00 - - - - - vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - 1.00 - - - - vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 0
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [0,1] D=eER. . . vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [0,2] D==eER . . vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [0,3] D===eER . . vpcmpeqq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [1,0] .D===eER . . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [1,1] .D====eER . . vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [1,2] .D=====eER. . vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [1,3] .D======eER . vpcmpeqq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [2,0] . D======eER . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [2,1] . D=======eER . vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [2,2] . D========eER. vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [2,3] . D=========eER vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK: [0,0] DeeER. . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [0,1] D=eeER . vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [0,2] DeeE-R . vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [0,3] D==eeER . vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [1,0] .DeeE-R . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [1,1] .D==eeER . vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [1,2] .D=eeE-R . vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [1,3] .D===eeER . vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [2,0] . D=eeE-R . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [2,1] . D===eeER. vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [2,2] . D==eeE-R. vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [2,3] . D====eeER vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -81,7 +93,7 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 4.0 0.3 0.0 vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1. 3 5.0 0.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: 2. 3 6.0 0.0 0.0 vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 3. 3 7.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 0. 3 1.3 1.3 0.7 vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1. 3 3.0 3.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 2. 3 2.0 2.0 1.0 vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 3. 3 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
# perf stat reports an IPC of 2.00 for this block of code.
@@ -15,12 +15,12 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 6000
-# CHECK-NEXT: Total Cycles: 1501
+# CHECK-NEXT: Total Cycles: 1504
# CHECK-NEXT: Total uOps: 6000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 4.00
-# CHECK-NEXT: IPC: 4.00
+# CHECK-NEXT: uOps Per Cycle: 3.99
+# CHECK-NEXT: IPC: 3.99
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -35,44 +35,56 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1 0 0.25 vpcmpgtb %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1 0 0.25 vpcmpgtw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 1 0 0.25 vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 1 0 0.25 vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 1 2 0.50 vpcmpgtq %xmm3, %xmm3, %xmm0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - - - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 0.50 0.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - - vpcmpgtb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - vpcmpgtw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vpcmpgtb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vpcmpgtw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vpcmpgtd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 0.50 0.50 - - - - vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: Index 0123
+# CHECK-NEXT: Index 0123456
-# CHECK: [0,0] DR . vpcmpgtb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [0,1] DR . vpcmpgtw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [0,2] DR . vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [0,3] DR . vpcmpgtq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [1,0] .DR. vpcmpgtb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [1,1] .DR. vpcmpgtw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [1,2] .DR. vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [1,3] .DR. vpcmpgtq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [2,0] . DR vpcmpgtb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [2,1] . DR vpcmpgtw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [2,2] . DR vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [2,3] . DR vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK: [0,0] DR .. vpcmpgtb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [0,1] DR .. vpcmpgtw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [0,2] DR .. vpcmpgtd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [0,3] DeeER.. vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [1,0] .D--R.. vpcmpgtb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [1,1] .D--R.. vpcmpgtw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [1,2] .D--R.. vpcmpgtd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [1,3] .DeeER. vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [2,0] . D--R. vpcmpgtb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [2,1] . D--R. vpcmpgtw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [2,2] . D--R. vpcmpgtd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [2,3] . DeeER vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -81,7 +93,7 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 0.0 vpcmpgtb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1. 3 0.0 0.0 0.0 vpcmpgtw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: 2. 3 0.0 0.0 0.0 vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 3. 3 0.0 0.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 0. 3 0.0 0.0 1.3 vpcmpgtb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1. 3 0.0 0.0 1.3 vpcmpgtw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 2. 3 0.0 0.0 1.3 vpcmpgtd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 3. 3 1.0 1.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
# perf stat reports an IPC of 1.00 for this code block.
@@ -12,13 +12,13 @@ sbb %eax, %eax
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 3000
-# CHECK-NEXT: Total Cycles: 6003
-# CHECK-NEXT: Total uOps: 6000
+# CHECK-NEXT: Total Cycles: 3003
+# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,38 +29,49 @@ sbb %eax, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 2 0.67 sbbl %edx, %edx
-# CHECK-NEXT: 2 2 0.67 sbbl %eax, %eax
+# CHECK-NEXT: 1 1 1.00 sbbl %edx, %edx
+# CHECK-NEXT: 1 1 1.00 sbbl %eax, %eax
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.33 1.33 - 1.33 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.67 0.67 - 0.67 - - sbbl %edx, %edx
-# CHECK-NEXT: - - 0.67 0.67 - 0.67 - - sbbl %eax, %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - sbbl %edx, %edx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - sbbl %eax, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 012345678
-# CHECK: [0,0] DeeER. . . sbbl %edx, %edx
-# CHECK-NEXT: [0,1] D==eeER . . sbbl %eax, %eax
-# CHECK-NEXT: [1,0] .D===eeER . . sbbl %edx, %edx
-# CHECK-NEXT: [1,1] .D=====eeER . sbbl %eax, %eax
-# CHECK-NEXT: [2,0] . D======eeER . sbbl %edx, %edx
-# CHECK-NEXT: [2,1] . D========eeER sbbl %eax, %eax
+# CHECK: [0,0] DeER . . sbbl %edx, %edx
+# CHECK-NEXT: [0,1] D=eER. . sbbl %eax, %eax
+# CHECK-NEXT: [1,0] D==eER . sbbl %edx, %edx
+# CHECK-NEXT: [1,1] D===eER . sbbl %eax, %eax
+# CHECK-NEXT: [2,0] .D===eER. sbbl %edx, %edx
+# CHECK-NEXT: [2,1] .D====eER sbbl %eax, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -69,5 +80,5 @@ sbb %eax, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 4.0 0.3 0.0 sbbl %edx, %edx
-# CHECK-NEXT: 1. 3 6.0 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 0. 3 2.7 0.3 0.0 sbbl %edx, %edx
+# CHECK-NEXT: 1. 3 3.7 0.0 0.0 sbbl %eax, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 -iterations=1500 < %s | FileCheck %s
# perf stat reports a throughput of 1.51 IPC for this block of code.
@@ -13,13 +13,13 @@ sbb %eax, %eax
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 7503
-# CHECK-NEXT: Total uOps: 6000
+# CHECK-NEXT: Total Cycles: 3006
+# CHECK-NEXT: Total uOps: 4500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.80
-# CHECK-NEXT: IPC: 0.60
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 1.50
+# CHECK-NEXT: IPC: 1.50
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -30,43 +30,55 @@ sbb %eax, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imull %edx, %eax
-# CHECK-NEXT: 1 1 0.33 addl %edx, %edx
-# CHECK-NEXT: 2 2 0.67 sbbl %eax, %eax
+# CHECK-NEXT: 1 4 1.00 imull %edx, %eax
+# CHECK-NEXT: 1 1 0.50 addl %edx, %edx
+# CHECK-NEXT: 1 1 1.00 sbbl %eax, %eax
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.33 1.33 - 1.33 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - 1.00
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - imull %edx, %eax
-# CHECK-NEXT: - - 0.33 0.33 - 0.34 - - addl %edx, %edx
-# CHECK-NEXT: - - 1.00 - - 1.00 - - sbbl %eax, %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - 1.00 imull %edx, %eax
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - addl %edx, %edx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - sbbl %eax, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234567
+# CHECK-NEXT: 01
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeER . . . imull %edx, %eax
-# CHECK-NEXT: [0,1] DeE--R . . . addl %edx, %edx
-# CHECK-NEXT: [0,2] D===eeER . . . sbbl %eax, %eax
-# CHECK-NEXT: [1,0] .D====eeeER . . imull %edx, %eax
-# CHECK-NEXT: [1,1] .DeE------R . . addl %edx, %edx
-# CHECK-NEXT: [1,2] .D=======eeER . . sbbl %eax, %eax
-# CHECK-NEXT: [2,0] . D========eeeER . imull %edx, %eax
-# CHECK-NEXT: [2,1] . DeE----------R . addl %edx, %edx
-# CHECK-NEXT: [2,2] . D===========eeER sbbl %eax, %eax
+# CHECK: [0,0] D=eeeeER .. imull %edx, %eax
+# CHECK-NEXT: [0,1] DeE----R .. addl %edx, %edx
+# CHECK-NEXT: [0,2] D==eE--R .. sbbl %eax, %eax
+# CHECK-NEXT: [1,0] D===eeeeER.. imull %edx, %eax
+# CHECK-NEXT: [1,1] .DeE-----R.. addl %edx, %edx
+# CHECK-NEXT: [1,2] .D===eE--R.. sbbl %eax, %eax
+# CHECK-NEXT: [2,0] .D====eeeeER imull %edx, %eax
+# CHECK-NEXT: [2,1] .D=eE------R addl %edx, %edx
+# CHECK-NEXT: [2,2] . D====eE--R sbbl %eax, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -75,6 +87,6 @@ sbb %eax, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 5.0 0.3 0.0 imull %edx, %eax
-# CHECK-NEXT: 1. 3 1.0 0.3 6.0 addl %edx, %edx
-# CHECK-NEXT: 2. 3 8.0 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 0. 3 3.7 0.7 0.0 imull %edx, %eax
+# CHECK-NEXT: 1. 3 1.3 0.3 5.0 addl %edx, %edx
+# CHECK-NEXT: 2. 3 4.0 2.0 2.0 sbbl %eax, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=500 -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=500 -timeline < %s | FileCheck %s
vpmuld %xmm0, %xmm0, %xmm1
vpaddd %xmm1, %xmm1, %xmm0
@@ -7,7 +7,7 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Iterations: 500
# CHECK-NEXT: Instructions: 1500
-# CHECK-NEXT: Total Cycles: 3004
+# CHECK-NEXT: Total Cycles: 3005
# CHECK-NEXT: Total uOps: 1500
# CHECK: Dispatch Width: 4
@@ -24,64 +24,76 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 1.00 vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1 1 0.50 vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: 1 1 0.50 vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: 1 4 1.00 vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1 2 0.50 vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: 1 2 0.50 vpaddd %xmm0, %xmm0, %xmm3
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - - - 2.00 1.00 - 1.50 1.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 1.00 - - - - - vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: - - - 1.00 - - - - vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 0.50 0.50 - - - - vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 01234
-# CHECK: [0,0] DeeeeeER . . . . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [0,1] D=====eER . . . . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [0,2] D======eER. . . . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [1,0] D======eeeeeER . . . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [1,1] .D==========eER. . . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [1,2] .D===========eER . . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [2,0] .D===========eeeeeER. . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [2,1] .D================eER . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [2,2] . D================eER . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [3,0] . D================eeeeeER . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [3,1] . D=====================eER . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [3,2] . D======================eER . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [4,0] . D=====================eeeeeER . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [4,1] . D==========================eER . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [4,2] . D===========================eER . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [5,0] . D===========================eeeeeER . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [5,1] . D===============================eER . . . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [5,2] . D================================eER. . . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [6,0] . D================================eeeeeER . . . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [6,1] . D=====================================eER. . . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [6,2] . D=====================================eER . . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [7,0] . D=====================================eeeeeER. . . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [7,1] . D==========================================eER . . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [7,2] . D===========================================eER . . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [8,0] . .D==========================================eeeeeER . . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [8,1] . .D===============================================eER . . vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [8,2] . .D================================================eER . . vpaddd %xmm0, %xmm0, %xmm3
-# CHECK-NEXT: [9,0] . .D================================================eeeeeER . vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [9,1] . . D====================================================eER. vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: [9,2] . . D=====================================================eER vpaddd %xmm0, %xmm0, %xmm3
+# CHECK: [0,0] DeeeeER . . . . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [0,1] D====eeER . . . . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [0,2] D======eeER . . . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [1,0] D======eeeeER . . . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [1,1] .D=========eeER. . . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [1,2] .D===========eeER . . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [2,0] .D===========eeeeER . . . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [2,1] .D===============eeER . . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [2,2] . D================eeER . . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [3,0] . D================eeeeER. . . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [3,1] . D====================eeER . . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [3,2] . D======================eeER . . . . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [4,0] . D=====================eeeeER . . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [4,1] . D=========================eeER . . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [4,2] . D===========================eeER. . . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [5,0] . D===========================eeeeER . . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [5,1] . D==============================eeER . . . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [5,2] . D================================eeER . . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [6,0] . D================================eeeeER . . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [6,1] . D====================================eeER. . . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [6,2] . D=====================================eeER . . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [7,0] . D=====================================eeeeER . . . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [7,1] . D=========================================eeER . . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [7,2] . D===========================================eeER . . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [8,0] . .D==========================================eeeeER. . . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [8,1] . .D==============================================eeER . . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [8,2] . .D================================================eeER . . vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: [9,0] . .D================================================eeeeER . vpmuldq %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [9,1] . . D===================================================eeER . vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: [9,2] . . D=====================================================eeER vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -91,5 +103,5 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 10 25.0 0.1 0.0 vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1. 10 29.7 0.0 0.0 vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: 1. 10 28.7 0.0 0.0 vpaddd %xmm1, %xmm1, %xmm0
# CHECK-NEXT: 2. 10 30.5 0.0 0.0 vpaddd %xmm0, %xmm0, %xmm3
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=300 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=300 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
vmulps %xmm0, %xmm1, %xmm2
vhaddps %xmm2, %xmm2, %xmm3
@@ -7,13 +7,13 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Iterations: 300
# CHECK-NEXT: Instructions: 900
-# CHECK-NEXT: Total Cycles: 1211
+# CHECK-NEXT: Total Cycles: 627
# CHECK-NEXT: Total uOps: 2100
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.73
-# CHECK-NEXT: IPC: 0.74
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: uOps Per Cycle: 3.35
+# CHECK-NEXT: IPC: 1.44
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -25,42 +25,54 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 5 2.00 vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 3 5 2.00 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 3 11 1.00 vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 3 11 1.00 vhaddps %xmm3, %xmm3, %xmm4
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 2.00 - 4.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - 1.49 1.51 - - - - 2.00 1.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 1.00 - - - - - vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.49 0.51 - - - - 1.00 - - - - - vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 012
+# CHECK-NEXT: 0123456789 012
+# CHECK-NEXT: Index 0123456789 0123456789
-# CHECK: [0,0] DeeeeeER . . . . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,1] D=====eeeeeER . . . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [0,2] .D==========eeeeeER . . vhaddps %xmm3, %xmm3, %xmm4
-# CHECK-NEXT: [1,0] .DeeeeeE----------R . . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,1] . D=====eeeeeE----R . . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [1,2] . D==========eeeeeER . vhaddps %xmm3, %xmm3, %xmm4
-# CHECK-NEXT: [2,0] . DeeeeeE----------R . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [2,1] . D=====eeeeeE----R . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [2,2] . D==========eeeeeER vhaddps %xmm3, %xmm3, %xmm4
+# CHECK: [0,0] DeeeeeER . . . . . . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,1] D=====eeeeeeeeeeeER . . . . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [0,2] .D===============eeeeeeeeeeeER. . vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: [1,0] .DeeeeeE---------------------R. . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,1] . D====eeeeeeeeeeeE----------R. . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [1,2] . D==============eeeeeeeeeeeER . vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: [2,0] . DeeeeeE--------------------R . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [2,1] . D====eeeeeeeeeeeE---------R . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [2,2] . D==============eeeeeeeeeeeER vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -69,6 +81,6 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 1.0 1.0 6.7 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1. 3 6.0 0.7 2.7 vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 2. 3 11.0 1.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 0. 3 1.0 1.0 13.7 vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1. 3 5.3 0.0 6.3 vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 2. 3 15.3 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s Sat Oct 27 13:46:30 2018
@@ -1,18 +1,18 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
vshufps $0, %xmm0, %xmm1, %xmm1
vhaddps (%rdi), %xmm1, %xmm2
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 15
+# CHECK-NEXT: Total Cycles: 20
# CHECK-NEXT: Total uOps: 5
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.33
-# CHECK-NEXT: IPC: 0.13
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: uOps Per Cycle: 0.25
+# CHECK-NEXT: IPC: 0.10
+# CHECK-NEXT: Block RThroughput: 1.3
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -23,15 +23,15 @@ vhaddps (%rdi), %xmm1, %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 1.00 vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: 4 11 2.00 * vhaddps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: 4 16 1.00 * vhaddps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 0123456789
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: [0,1] .DeeeeeeeeeeeER vhaddps (%rdi), %xmm1, %xmm2
+# CHECK: [0,0] DeeER. . . . vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: [0,1] .DeeeeeeeeeeeeeeeeER vhaddps (%rdi), %xmm1, %xmm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s Sat Oct 27 13:46:30 2018
@@ -1,18 +1,18 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
vshufps $0, %xmm0, %xmm1, %xmm1
vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 16
-# CHECK-NEXT: Total uOps: 5
+# CHECK-NEXT: Total Cycles: 20
+# CHECK-NEXT: Total uOps: 11
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.31
-# CHECK-NEXT: IPC: 0.13
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: uOps Per Cycle: 0.55
+# CHECK-NEXT: IPC: 0.10
+# CHECK-NEXT: Block RThroughput: 2.8
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -23,15 +23,15 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 1.00 vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: 4 12 2.00 * vhaddps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: 10 16 2.00 * vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Timeline view:
-# CHECK-NEXT: 012345
+# CHECK-NEXT: 0123456789
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: [0,1] .DeeeeeeeeeeeeER vhaddps (%rdi), %ymm1, %ymm2
+# CHECK: [0,0] DeeER. . . . vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: [0,1] .DeeeeeeeeeeeeeeeeER vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s Sat Oct 27 13:46:30 2018
@@ -1,8 +1,8 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -resource-pressure=false -instruction-info=true < %s | FileCheck %s --check-prefix=ENABLED
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -resource-pressure=false -instruction-info=false < %s | FileCheck %s -check-prefix=DISABLED
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -resource-pressure=false -instruction-info < %s | FileCheck %s -check-prefix=ENABLED
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -resource-pressure=false < %s | FileCheck %s -check-prefix=ENABLED
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -resource-pressure=false -instruction-info=true < %s | FileCheck %s --check-prefix=ENABLED
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -resource-pressure=false -instruction-info=false < %s | FileCheck %s -check-prefix=DISABLED
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -resource-pressure=false -instruction-info < %s | FileCheck %s -check-prefix=ENABLED
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -resource-pressure=false < %s | FileCheck %s -check-prefix=ENABLED
vmulps %xmm0, %xmm1, %xmm2
vhaddps %xmm2, %xmm2, %xmm3
@@ -13,14 +13,14 @@ vhaddps %xmm3, %xmm3, %xmm4
# ENABLED: Iterations: 100
# ENABLED-NEXT: Instructions: 300
-# ENABLED-NEXT: Total Cycles: 414
+# ENABLED-NEXT: Total Cycles: 228
# ENABLED-NEXT: Total uOps: 700
# ENABLED: Dispatch Width: 4
-# ENABLED-NEXT: uOps Per Cycle: 1.69
-# ENABLED-NEXT: IPC: 0.72
-# ENABLED-NEXT: Block RThroughput: 4.0
+# ENABLED-NEXT: uOps Per Cycle: 3.07
+# ENABLED-NEXT: IPC: 1.32
+# ENABLED-NEXT: Block RThroughput: 2.0
# ENABLED: Instruction Info:
# ENABLED-NEXT: [1]: #uOps
@@ -32,5 +32,5 @@ vhaddps %xmm3, %xmm3, %xmm4
# ENABLED: [1] [2] [3] [4] [5] [6] Instructions:
# ENABLED-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# ENABLED-NEXT: 3 5 2.00 vhaddps %xmm2, %xmm2, %xmm3
-# ENABLED-NEXT: 3 5 2.00 vhaddps %xmm3, %xmm3, %xmm4
+# ENABLED-NEXT: 3 11 1.00 vhaddps %xmm2, %xmm2, %xmm3
+# ENABLED-NEXT: 3 11 1.00 vhaddps %xmm3, %xmm3, %xmm4
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=100 -timeline -timeline-max-iterations=1 -noalias=false < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=100 -timeline -timeline-max-iterations=1 -noalias=false < %s | FileCheck %s
vmovaps (%rsi), %xmm0
vmovaps %xmm0, (%rdi)
@@ -12,12 +12,12 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 2803
+# CHECK-NEXT: Total Cycles: 2403
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.29
-# CHECK-NEXT: IPC: 0.29
+# CHECK-NEXT: uOps Per Cycle: 0.33
+# CHECK-NEXT: IPC: 0.33
# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
@@ -29,52 +29,64 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 6 0.50 * vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps (%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 16(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 32(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 48(%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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - - 4.00 - - 8.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - 8.00 - - - - - - - 4.00 - - - 4.00 3.99 4.01 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 vmovaps (%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 0.99 0.01 - - - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 1.00 - - - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 1.00 - - - - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 1.00 - - - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0
-# CHECK-NEXT: Index 0123456789 0123456789
+# CHECK-NEXT: 0123456789
+# CHECK-NEXT: Index 0123456789 0123456
-# CHECK: [0,0] DeeeeeeER . . . . . vmovaps (%rsi), %xmm0
-# CHECK-NEXT: [0,1] D======eER. . . . . vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: [0,2] D=======eeeeeeER . . . vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: [0,3] D=============eER . . . vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: [0,4] .D=============eeeeeeER . . vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: [0,5] .D===================eER . . vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: [0,6] .D====================eeeeeeER. vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: [0,7] .D==========================eER vmovaps %xmm0, 48(%rdi)
+# CHECK: [0,0] DeeeeeER . . . .. vmovaps (%rsi), %xmm0
+# CHECK-NEXT: [0,1] D=====eER . . . .. vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: [0,2] D======eeeeeER . . .. vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: [0,3] D===========eER. . .. vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: [0,4] .D===========eeeeeER. .. vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: [0,5] .D================eER .. vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: [0,6] .D=================eeeeeER. vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: [0,7] .D======================eER vmovaps %xmm0, 48(%rdi)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -84,10 +96,10 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1. 1 7.0 0.0 0.0 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 2. 1 8.0 0.0 0.0 vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 3. 1 14.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 4. 1 14.0 0.0 0.0 vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 5. 1 20.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 6. 1 21.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 7. 1 27.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1. 1 6.0 0.0 0.0 vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 2. 1 7.0 0.0 0.0 vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 3. 1 12.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 4. 1 12.0 0.0 0.0 vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 5. 1 17.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 6. 1 18.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 7. 1 23.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=100 -timeline -timeline-max-iterations=1 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=100 -timeline -timeline-max-iterations=1 < %s | FileCheck %s
vmovaps (%rsi), %xmm0
vmovaps %xmm0, (%rdi)
@@ -12,7 +12,7 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 409
+# CHECK-NEXT: Total Cycles: 408
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
@@ -29,52 +29,64 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 6 0.50 * vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps (%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 16(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 32(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1 6 0.50 * vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1 5 0.50 * vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 48(%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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - - 4.00 - 3.94 4.06
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 4.05 3.95 - - - - - - 3.95 0.05 - - - 4.00 3.95 4.05 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - 0.97 0.03 vmovaps (%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: - - - - - - 0.03 0.97 vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - 0.97 0.03 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: - - - - - - 1.00 - vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - - 1.00 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: - - - - 1.00 - 0.97 0.03 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - 1.00 - - - - - - 0.97 0.03 - - - - 0.97 0.03 - - - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 0.02 0.98 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 0.02 0.98 - - - - - - 1.00 - - - - - 0.98 0.02 - - - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 0.98 0.02 - - - - - - 0.98 0.02 - - - - 1.00 - - - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 0.03 0.97 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
-# CHECK-NEXT: 012
+# CHECK-NEXT: 01
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeER . . vmovaps (%rsi), %xmm0
-# CHECK-NEXT: [0,1] D======eER. . vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: [0,2] DeeeeeeE-R. . vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: [0,3] D=======eER . vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: [0,4] .DeeeeeeE-R . vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: [0,5] .D=======eER. vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: [0,6] .DeeeeeeE--R. vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: [0,7] .D========eER vmovaps %xmm0, 48(%rdi)
+# CHECK: [0,0] DeeeeeER .. vmovaps (%rsi), %xmm0
+# CHECK-NEXT: [0,1] D=====eER .. vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: [0,2] DeeeeeE-R .. vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: [0,3] D======eER.. vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: [0,4] .DeeeeeE-R.. vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: [0,5] .D======eER. vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: [0,6] .DeeeeeE--R. vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: [0,7] .D=======eER vmovaps %xmm0, 48(%rdi)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -84,10 +96,10 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1. 1 7.0 0.0 0.0 vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1. 1 6.0 0.0 0.0 vmovaps %xmm0, (%rdi)
# CHECK-NEXT: 2. 1 1.0 1.0 1.0 vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 3. 1 8.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 3. 1 7.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
# CHECK-NEXT: 4. 1 1.0 1.0 1.0 vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 5. 1 8.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 5. 1 7.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 1.0 1.0 2.0 vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 7. 1 9.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 7. 1 8.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=1 -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=1 -register-file-stats < %s | FileCheck %s
# These are dependency-breaking one-idioms.
# Much like zero-idioms, but they produce ones, and do consume resources.
@@ -29,13 +29,13 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 1500
-# CHECK-NEXT: Total Cycles: 903
+# CHECK-NEXT: Total Cycles: 754
# CHECK-NEXT: Total uOps: 1500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.66
-# CHECK-NEXT: IPC: 1.66
-# CHECK-NEXT: Block RThroughput: 6.0
+# CHECK-NEXT: uOps Per Cycle: 1.99
+# CHECK-NEXT: IPC: 1.99
+# CHECK-NEXT: Block RThroughput: 7.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -46,77 +46,99 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 pcmpeqb %mm2, %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpeqd %mm2, %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpeqw %mm2, %mm2
-# CHECK-NEXT: 1 1 0.50 pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: 1 1 0.50 pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: 1 1 0.50 pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: 1 1 0.50 pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.50 vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.50 vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 0.50 pcmpeqb %mm2, %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqd %mm2, %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqw %mm2, %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 1500
-# CHECK-NEXT: Max number of mappings used: 168
+# CHECK-NEXT: Max number of mappings used: 72
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 1500
+# CHECK-NEXT: Max number of mappings used: 72
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 7.65 - 7.35 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - - 7.50 7.50 - - 7.50 7.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqb %mm2, %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqd %mm2, %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqw %mm2, %mm2
-# CHECK-NEXT: - - - 0.75 - 0.25 - - pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: - - - 0.49 - 0.51 - - pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: - - - 0.64 - 0.36 - - pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: - - - 0.21 - 0.79 - - pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: - - - 0.44 - 0.56 - - vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - 0.26 - 0.74 - - vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - 0.25 - 0.75 - - vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - 1.00 - - vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - 0.25 - 0.75 - - vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - 0.55 - 0.45 - - vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - 0.44 - 0.56 - - vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - 0.37 - 0.63 - - vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqb %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqd %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqw %mm2, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - 1.00 - - - - pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 1.00 - - - - - vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Timeline view:
# CHECK-NEXT: 01
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeER .. pcmpeqb %mm2, %mm2
-# CHECK-NEXT: [0,1] D===eeeER .. pcmpeqd %mm2, %mm2
-# CHECK-NEXT: [0,2] D======eeeER pcmpeqw %mm2, %mm2
-# CHECK-NEXT: [0,3] DeE--------R pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: [0,4] .DeE-------R pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: [0,5] .D=eE------R pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: [0,6] .D==eE-----R pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: [0,7] .DeE-------R vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,8] . DeE------R vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,9] . D==eE----R vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,10] . D===eE---R vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,11] . D====eE--R vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,12] . D====eE-R vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,13] . D====eE-R vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,14] . D=====eER vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK: [0,0] DeeER. .. pcmpeqb %mm2, %mm2
+# CHECK-NEXT: [0,1] DeeER. .. pcmpeqd %mm2, %mm2
+# CHECK-NEXT: [0,2] D=eeER .. pcmpeqw %mm2, %mm2
+# CHECK-NEXT: [0,3] D==eeER .. pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: [0,4] .DeeE-R .. pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: [0,5] .D==eeER .. pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: [0,6] .D=eeE-R .. pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: [0,7] .D===eeER .. vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,8] . D=eeE-R .. vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,9] . D===eeER.. vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,10] . D==eeE-R.. vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,11] . D===eeER.. vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,12] . D===eeER. vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,13] . D===eeER. vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,14] . D====eeER vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -126,17 +148,17 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 pcmpeqb %mm2, %mm2
-# CHECK-NEXT: 1. 1 4.0 0.0 0.0 pcmpeqd %mm2, %mm2
-# CHECK-NEXT: 2. 1 7.0 0.0 0.0 pcmpeqw %mm2, %mm2
-# CHECK-NEXT: 3. 1 1.0 1.0 8.0 pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: 4. 1 1.0 0.0 7.0 pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: 5. 1 2.0 0.0 6.0 pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: 6. 1 3.0 0.0 5.0 pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: 7. 1 1.0 1.0 7.0 vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 8. 1 1.0 0.0 6.0 vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 9. 1 3.0 1.0 4.0 vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 10. 1 4.0 0.0 3.0 vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 11. 1 5.0 0.0 2.0 vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 12. 1 5.0 1.0 1.0 vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 13. 1 5.0 1.0 1.0 vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 14. 1 6.0 2.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1. 1 1.0 1.0 0.0 pcmpeqd %mm2, %mm2
+# CHECK-NEXT: 2. 1 2.0 2.0 0.0 pcmpeqw %mm2, %mm2
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: 4. 1 1.0 1.0 1.0 pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: 5. 1 3.0 0.0 0.0 pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: 6. 1 2.0 2.0 1.0 pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: 7. 1 4.0 4.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 8. 1 2.0 2.0 1.0 vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 9. 1 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 10. 1 3.0 3.0 1.0 vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 11. 1 4.0 4.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 12. 1 4.0 4.0 0.0 vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 13. 1 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 14. 1 5.0 5.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -resource-pressure=false -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=false -timeline < %s | FileCheck %s
imul %rax, %rbx
lzcnt %ax, %bx
@@ -7,13 +7,13 @@ add %ecx, %ebx
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 3
-# CHECK-NEXT: Total Cycles: 8
-# CHECK-NEXT: Total uOps: 3
+# CHECK-NEXT: Total Cycles: 11
+# CHECK-NEXT: Total uOps: 4
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.38
-# CHECK-NEXT: IPC: 0.38
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.36
+# CHECK-NEXT: IPC: 0.27
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,16 +24,17 @@ add %ecx, %ebx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imulq %rax, %rbx
-# CHECK-NEXT: 1 3 1.00 lzcntw %ax, %bx
-# CHECK-NEXT: 1 1 0.33 addl %ecx, %ebx
+# CHECK-NEXT: 1 6 4.00 imulq %rax, %rbx
+# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
+# CHECK-NEXT: 1 1 0.50 addl %ecx, %ebx
# CHECK: Timeline view:
-# CHECK-NEXT: Index 01234567
+# CHECK-NEXT: 0
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeER . imulq %rax, %rbx
-# CHECK-NEXT: [0,1] D=eeeER. lzcntw %ax, %bx
-# CHECK-NEXT: [0,2] D====eER addl %ecx, %ebx
+# CHECK: [0,0] DeeeeeeER . imulq %rax, %rbx
+# CHECK-NEXT: [0,1] D=====eeER. lzcntw %ax, %bx
+# CHECK-NEXT: [0,2] D=======eER addl %ecx, %ebx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -43,5 +44,5 @@ add %ecx, %ebx
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx
-# CHECK-NEXT: 1. 1 2.0 2.0 0.0 lzcntw %ax, %bx
-# CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1. 1 6.0 0.0 0.0 lzcntw %ax, %bx
+# CHECK-NEXT: 2. 1 8.0 0.0 0.0 addl %ecx, %ebx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
# perf stat reports a throughput of 1.00 IPC for this code snippet.
@@ -12,13 +12,13 @@ xor %bx, %dx
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total Cycles: 4503
# CHECK-NEXT: Total uOps: 4500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 2.99
-# CHECK-NEXT: IPC: 2.99
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,42 +29,55 @@ xor %bx, %dx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 addw %cx, %dx
-# CHECK-NEXT: 1 1 0.33 movw %ax, %dx
-# CHECK-NEXT: 1 1 0.33 xorw %bx, %dx
+# CHECK-NEXT: 1 1 0.50 addw %cx, %dx
+# CHECK-NEXT: 1 1 0.50 movw %ax, %dx
+# CHECK-NEXT: 1 1 0.50 xorw %bx, %dx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.67 - - 0.33 - - addw %cx, %dx
-# CHECK-NEXT: - - - 0.67 - 0.33 - - movw %ax, %dx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - xorw %bx, %dx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addw %cx, %dx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - movw %ax, %dx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - xorw %bx, %dx
# CHECK: Timeline view:
-# CHECK-NEXT: Index 0123456
+# CHECK-NEXT: 01
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER .. addw %cx, %dx
-# CHECK-NEXT: [0,1] DeER .. movw %ax, %dx
-# CHECK-NEXT: [0,2] D=eER.. xorw %bx, %dx
-# CHECK-NEXT: [1,0] D==eER. addw %cx, %dx
-# CHECK-NEXT: [1,1] .DeE-R. movw %ax, %dx
-# CHECK-NEXT: [1,2] .D=eER. xorw %bx, %dx
-# CHECK-NEXT: [2,0] .D==eER addw %cx, %dx
-# CHECK-NEXT: [2,1] .DeE--R movw %ax, %dx
-# CHECK-NEXT: [2,2] . DeE-R xorw %bx, %dx
+# CHECK: [0,0] DeER . .. addw %cx, %dx
+# CHECK-NEXT: [0,1] D=eER. .. movw %ax, %dx
+# CHECK-NEXT: [0,2] D==eER .. xorw %bx, %dx
+# CHECK-NEXT: [1,0] D===eER .. addw %cx, %dx
+# CHECK-NEXT: [1,1] .D===eER .. movw %ax, %dx
+# CHECK-NEXT: [1,2] .D====eER .. xorw %bx, %dx
+# CHECK-NEXT: [2,0] .D=====eER.. addw %cx, %dx
+# CHECK-NEXT: [2,1] .D======eER. movw %ax, %dx
+# CHECK-NEXT: [2,2] . D======eER xorw %bx, %dx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -73,6 +86,6 @@ xor %bx, %dx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 2.3 0.3 0.0 addw %cx, %dx
-# CHECK-NEXT: 1. 3 1.0 1.0 1.0 movw %ax, %dx
-# CHECK-NEXT: 2. 3 1.7 0.0 0.3 xorw %bx, %dx
+# CHECK-NEXT: 0. 3 3.7 0.3 0.0 addw %cx, %dx
+# CHECK-NEXT: 1. 3 4.3 0.0 0.0 movw %ax, %dx
+# CHECK-NEXT: 2. 3 5.0 0.0 0.0 xorw %bx, %dx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
# perf stat reports a throughput of 0.60 IPC for this code snippet.
@@ -12,13 +12,13 @@ add %cx, %bx
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 3005
-# CHECK-NEXT: Total uOps: 4500
+# CHECK-NEXT: Total Cycles: 9003
+# CHECK-NEXT: Total uOps: 6000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.50
-# CHECK-NEXT: IPC: 1.50
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.67
+# CHECK-NEXT: IPC: 0.50
+# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,43 +29,55 @@ add %cx, %bx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imulw %ax, %bx
-# CHECK-NEXT: 1 3 1.00 lzcntw %ax, %bx
-# CHECK-NEXT: 1 1 0.33 addw %cx, %bx
+# CHECK-NEXT: 1 4 1.00 imulw %ax, %bx
+# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
+# CHECK-NEXT: 1 1 0.50 addw %cx, %bx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 0.50 2.00 - 0.50 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - 1.00
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - imulw %ax, %bx
-# CHECK-NEXT: - - - 1.00 - - - - lzcntw %ax, %bx
-# CHECK-NEXT: - - 0.50 - - 0.50 - - addw %cx, %bx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - 1.00 imulw %ax, %bx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - lzcntw %ax, %bx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addw %cx, %bx
# CHECK: Timeline view:
-# CHECK-NEXT: 01
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: 0123456789
+# CHECK-NEXT: Index 0123456789 0
-# CHECK: [0,0] DeeeER .. imulw %ax, %bx
-# CHECK-NEXT: [0,1] D=eeeER .. lzcntw %ax, %bx
-# CHECK-NEXT: [0,2] D====eER .. addw %cx, %bx
-# CHECK-NEXT: [1,0] D=====eeeER. imulw %ax, %bx
-# CHECK-NEXT: [1,1] .D=eeeE---R. lzcntw %ax, %bx
-# CHECK-NEXT: [1,2] .D====eE--R. addw %cx, %bx
-# CHECK-NEXT: [2,0] .D=====eeeER imulw %ax, %bx
-# CHECK-NEXT: [2,1] .D==eeeE---R lzcntw %ax, %bx
-# CHECK-NEXT: [2,2] . D====eE--R addw %cx, %bx
+# CHECK: [0,0] DeeeeER . . . imulw %ax, %bx
+# CHECK-NEXT: [0,1] D===eeER . . . lzcntw %ax, %bx
+# CHECK-NEXT: [0,2] D=====eER . . . addw %cx, %bx
+# CHECK-NEXT: [1,0] .D=====eeeeER . . imulw %ax, %bx
+# CHECK-NEXT: [1,1] .D========eeER . . lzcntw %ax, %bx
+# CHECK-NEXT: [1,2] .D==========eER. . addw %cx, %bx
+# CHECK-NEXT: [2,0] . D==========eeeeER . imulw %ax, %bx
+# CHECK-NEXT: [2,1] . D=============eeER. lzcntw %ax, %bx
+# CHECK-NEXT: [2,2] . D===============eER addw %cx, %bx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -74,6 +86,6 @@ add %cx, %bx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 4.3 0.3 0.0 imulw %ax, %bx
-# CHECK-NEXT: 1. 3 2.3 2.3 2.0 lzcntw %ax, %bx
-# CHECK-NEXT: 2. 3 5.0 0.0 1.3 addw %cx, %bx
+# CHECK-NEXT: 0. 3 6.0 0.3 0.0 imulw %ax, %bx
+# CHECK-NEXT: 1. 3 9.0 0.0 0.0 lzcntw %ax, %bx
+# CHECK-NEXT: 2. 3 11.0 0.0 0.0 addw %cx, %bx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
# perf stat reports a throughput of 1.00 IPC for this code snippet.
@@ -7,13 +7,13 @@ lzcnt %ax, %bx ## partial register stal
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 1500
-# CHECK-NEXT: Total Cycles: 1505
-# CHECK-NEXT: Total uOps: 1500
+# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: uOps Per Cycle: 1.99
# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 0.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,32 +24,44 @@ lzcnt %ax, %bx ## partial register stal
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 lzcntw %ax, %bx
+# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 1.00 - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - lzcntw %ax, %bx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - lzcntw %ax, %bx
# CHECK: Timeline view:
-# CHECK-NEXT: Index 01234567
+# CHECK-NEXT: Index 0123456
-# CHECK: [0,0] DeeeER . lzcntw %ax, %bx
-# CHECK-NEXT: [1,0] D=eeeER. lzcntw %ax, %bx
-# CHECK-NEXT: [2,0] D==eeeER lzcntw %ax, %bx
+# CHECK: [0,0] DeeER.. lzcntw %ax, %bx
+# CHECK-NEXT: [1,0] D=eeER. lzcntw %ax, %bx
+# CHECK-NEXT: [2,0] .D=eeER lzcntw %ax, %bx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -58,4 +70,4 @@ lzcnt %ax, %bx ## partial register stal
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 2.0 2.0 0.0 lzcntw %ax, %bx
+# CHECK-NEXT: 0. 3 1.7 0.3 0.0 lzcntw %ax, %bx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1500 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
# perf stat reports a throughput of 0.60 IPC for this code snippet.
# Each lzcnt has a false dependency on %ecx; the first lzcnt has to wait on the
@@ -13,13 +13,13 @@ lzcnt 2(%rsp), %cx
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 4510
+# CHECK-NEXT: Total Cycles: 10503
# CHECK-NEXT: Total uOps: 7500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.66
-# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: uOps Per Cycle: 0.71
+# CHECK-NEXT: IPC: 0.43
+# CHECK-NEXT: Block RThroughput: 1.3
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -30,43 +30,55 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imull %edx, %ecx
-# CHECK-NEXT: 2 8 1.00 * lzcntw (%rsp), %cx
-# CHECK-NEXT: 2 8 1.00 * lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 1 4 1.00 imull %edx, %ecx
+# CHECK-NEXT: 2 6 0.50 * lzcntw (%rsp), %cx
+# CHECK-NEXT: 2 6 0.50 * lzcntw 2(%rsp), %cx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 3.00 - - - 2.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - 2.00 - - - 1.50 1.50 - - - - - - - - - - - - 1.00
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - imull %edx, %ecx
-# CHECK-NEXT: - - - 1.00 - - - 1.00 lzcntw (%rsp), %cx
-# CHECK-NEXT: - - - 1.00 - - - 1.00 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - 1.00 imull %edx, %ecx
+# CHECK-NEXT: - 1.00 - - - 1.00 - - - - - - - - - - - - - - lzcntw (%rsp), %cx
+# CHECK-NEXT: - 1.00 - - - 0.50 0.50 - - - - - - - - - - - - - lzcntw 2(%rsp), %cx
# CHECK: Timeline view:
-# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: 0123456789
+# CHECK-NEXT: Index 0123456789 0123
-# CHECK: [0,0] DeeeER . . . imull %edx, %ecx
-# CHECK-NEXT: [0,1] D=eeeeeeeeER . . lzcntw (%rsp), %cx
-# CHECK-NEXT: [0,2] .D=eeeeeeeeER . . lzcntw 2(%rsp), %cx
-# CHECK-NEXT: [1,0] .D=========eeeER . imull %edx, %ecx
-# CHECK-NEXT: [1,1] . D=eeeeeeeeE--R . lzcntw (%rsp), %cx
-# CHECK-NEXT: [1,2] . D==eeeeeeeeE-R . lzcntw 2(%rsp), %cx
-# CHECK-NEXT: [2,0] . D==========eeeER imull %edx, %ecx
-# CHECK-NEXT: [2,1] . D==eeeeeeeeE---R lzcntw (%rsp), %cx
-# CHECK-NEXT: [2,2] . D==eeeeeeeeE--R lzcntw 2(%rsp), %cx
+# CHECK: [0,0] DeeeeER . . . . imull %edx, %ecx
+# CHECK-NEXT: [0,1] DeeeeeeER . . . . lzcntw (%rsp), %cx
+# CHECK-NEXT: [0,2] .DeeeeeeER. . . . lzcntw 2(%rsp), %cx
+# CHECK-NEXT: [1,0] .D======eeeeER . . . imull %edx, %ecx
+# CHECK-NEXT: [1,1] . D=====eeeeeeER . . lzcntw (%rsp), %cx
+# CHECK-NEXT: [1,2] . D======eeeeeeER . . lzcntw 2(%rsp), %cx
+# CHECK-NEXT: [2,0] . D===========eeeeER . imull %edx, %ecx
+# CHECK-NEXT: [2,1] . D===========eeeeeeER. lzcntw (%rsp), %cx
+# CHECK-NEXT: [2,2] . D===========eeeeeeER lzcntw 2(%rsp), %cx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -75,6 +87,6 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 7.3 0.3 0.0 imull %edx, %ecx
-# CHECK-NEXT: 1. 3 2.3 2.3 1.7 lzcntw (%rsp), %cx
-# CHECK-NEXT: 2. 3 2.7 2.7 1.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 0. 3 6.7 0.3 0.0 imull %edx, %ecx
+# CHECK-NEXT: 1. 3 6.3 0.0 0.0 lzcntw (%rsp), %cx
+# CHECK-NEXT: 2. 3 6.7 0.0 0.0 lzcntw 2(%rsp), %cx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -resource-pressure=false -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=false -timeline < %s | FileCheck %s
imul %ax, %cx
add %al, %cl
@@ -7,12 +7,12 @@ add %ecx, %ebx
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 3
-# CHECK-NEXT: Total Cycles: 8
+# CHECK-NEXT: Total Cycles: 9
# CHECK-NEXT: Total uOps: 3
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.38
-# CHECK-NEXT: IPC: 0.38
+# CHECK-NEXT: uOps Per Cycle: 0.33
+# CHECK-NEXT: IPC: 0.33
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -24,16 +24,16 @@ add %ecx, %ebx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 imulw %ax, %cx
-# CHECK-NEXT: 1 1 0.33 addb %al, %cl
-# CHECK-NEXT: 1 1 0.33 addl %ecx, %ebx
+# CHECK-NEXT: 1 4 1.00 imulw %ax, %cx
+# CHECK-NEXT: 1 1 0.50 addb %al, %cl
+# CHECK-NEXT: 1 1 0.50 addl %ecx, %ebx
# CHECK: Timeline view:
-# CHECK-NEXT: Index 01234567
+# CHECK-NEXT: Index 012345678
-# CHECK: [0,0] DeeeER . imulw %ax, %cx
-# CHECK-NEXT: [0,1] D===eER. addb %al, %cl
-# CHECK-NEXT: [0,2] D====eER addl %ecx, %ebx
+# CHECK: [0,0] DeeeeER . imulw %ax, %cx
+# CHECK-NEXT: [0,1] D====eER. addb %al, %cl
+# CHECK-NEXT: [0,2] D=====eER addl %ecx, %ebx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -43,5 +43,5 @@ add %ecx, %ebx
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx
-# CHECK-NEXT: 1. 1 4.0 0.0 0.0 addb %al, %cl
-# CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1. 1 5.0 0.0 0.0 addb %al, %cl
+# CHECK-NEXT: 2. 1 6.0 0.0 0.0 addl %ecx, %ebx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=2 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=2 < %s | FileCheck %s
# VALU0/VALU1
vpmulld %xmm0, %xmm1, %xmm2
@@ -19,13 +19,13 @@ vsqrtps %ymm0, %ymm2
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 4256
-# CHECK-NEXT: Total uOps: 1000
+# CHECK-NEXT: Total Cycles: 3244
+# CHECK-NEXT: Total uOps: 1500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.23
-# CHECK-NEXT: IPC: 0.19
-# CHECK-NEXT: Block RThroughput: 42.0
+# CHECK-NEXT: uOps Per Cycle: 0.46
+# CHECK-NEXT: IPC: 0.25
+# CHECK-NEXT: Block RThroughput: 32.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -36,51 +36,72 @@ vsqrtps %ymm0, %ymm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 1.00 vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.33 vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 1 14 6.00 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 3 29 28.00 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1 5 2.00 vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 6 13 1.00 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 9 21.00 vsqrtps %ymm0, %ymm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 42.00 6.03 3.96 - 17.01 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - 32.71 32.29 - 2.00 3.00 1.00 6.00 6.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.05 0.06 - 0.89 - - vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: - - 1.98 0.90 - 15.12 - - vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - 28.00 2.00 - - 1.00 - - vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - 1.00 2.00 - 2.00 1.00 - - - - vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 10.71 10.29 - - - - - 1.00 - - - - vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 21.00 21.00 - - - - - 2.00 - - - - vsqrtps %ymm0, %ymm2
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456
-# CHECK-NEXT: Index 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789 012345678
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789
-# CHECK: [0,0] DeeeeeER . . . . . .. vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,1] DeE----R . . . . . .. vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,2] DeeeE--R . . . . . .. vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: [0,3] D=eeeeeeeeeeeeeeER . . . .. vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,4] .DeeeE-----------R . . . .. vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,5] .DeeeeeeeeeeeeeeER . . . .. vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: [0,6] .D=eeeE----------R . . . .. vaddps %ymm0, %ymm1, %ymm2
+# CHECK: [0,0] DeeeeeER . . . . . . . . . . . vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,1] D=eeE--R . . . . . . . . . . . vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,2] D==eeeeER . . . . . . . . . . . vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: [0,3] .D=eeeeeeeeeeeeeER . . . . . . . . . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,4] . D=eeeeeE-------R . . . . . . . . . vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,5] . D=eeeeeeeeeE---R . . . . . . . . . vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: [0,6] . D=eeeeeE------R . . . . . . . . . vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: [0,7] . D==eeeeeeeeeE--R . . . . . . . . . vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: [1,0] . D===eeeeeE----R . . . . . . . . . vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,1] . DeeE----------R . . . . . . . . . vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,2] . D====eeeeE----R . . . . . . . . . vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: [1,3] . D=eeeeeeeeeeeeeER . . . . . . . . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,4] . .D==================eeeeeER . . . . . . vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,5] . .D===================eeeeeeeeeER . . . . . vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: [1,6] . . D=======================================eeeeeER . . vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: [1,7] . . D========================================eeeeeeeeeER vsqrtps %ymm0, %ymm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -89,11 +110,11 @@ vsqrtps %ymm0, %ymm2
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 1.0 1.0 79.0 vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1. 2 1.0 1.0 82.5 vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2. 2 1.5 1.5 80.0 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 3. 2 1.5 1.5 74.0 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4. 2 2.0 2.0 84.0 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 5. 2 9.5 9.5 65.0 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 6. 2 2.5 2.5 83.0 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 7. 2 147.5 147.5 0.0 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 0. 2 2.5 2.5 2.0 vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1. 2 1.5 1.5 6.0 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2. 2 4.0 4.0 2.0 vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 3. 2 2.0 2.0 0.0 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4. 2 10.5 10.5 3.5 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 5. 2 11.0 11.0 1.5 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 6. 2 21.0 21.0 3.0 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 7. 2 22.0 22.0 1.0 vsqrtps %ymm0, %ymm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s Sat Oct 27 13:46:30 2018
@@ -1,18 +1,18 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -lqueue=2 -iterations=2 -resource-pressure=false -timeline -timeline-max-cycles=104 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -lqueue=2 -iterations=2 -resource-pressure=false -timeline -timeline-max-cycles=104 < %s | FileCheck %s
int3
stmxcsr (%rsp)
# CHECK: Iterations: 2
# CHECK-NEXT: Instructions: 4
-# CHECK-NEXT: Total Cycles: 213
-# CHECK-NEXT: Total uOps: 10
+# CHECK-NEXT: Total Cycles: 205
+# CHECK-NEXT: Total uOps: 6
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.05
+# CHECK-NEXT: uOps Per Cycle: 0.03
# CHECK-NEXT: IPC: 0.02
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: Block RThroughput: 0.8
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -23,14 +23,15 @@ stmxcsr (%rsp)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 100 0.33 * * U int3
-# CHECK-NEXT: 4 5 1.00 * * U stmxcsr (%rsp)
+# CHECK-NEXT: 1 100 0.50 * * U int3
+# CHECK-NEXT: 2 1 0.50 * * U stmxcsr (%rsp)
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789 0123456789 012
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789 0123456789 0123
-# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER int3
+# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER. int3
+# CHECK-NEXT: [0,1] D====================================================================================================eER stmxcsr (%rsp)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -39,5 +40,5 @@ stmxcsr (%rsp)
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 3.0 0.5 0.0 int3
-# CHECK-NEXT: 1. 2 100.0 0.0 0.0 stmxcsr (%rsp)
+# CHECK-NEXT: 0. 2 1.0 0.5 0.0 int3
+# CHECK-NEXT: 1. 2 100.5 0.0 0.0 stmxcsr (%rsp)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -timeline -timeline-max-iterations=3 < %s | FileCheck %s
add %eax, %ecx
add %eax, %edx
@@ -12,13 +12,13 @@ add %ebx, %eax
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 403
+# CHECK-NEXT: Total Cycles: 503
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.99
-# CHECK-NEXT: IPC: 1.99
-# CHECK-NEXT: Block RThroughput: 2.7
+# CHECK-NEXT: uOps Per Cycle: 1.59
+# CHECK-NEXT: IPC: 1.59
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,68 +29,80 @@ add %ebx, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 addl %eax, %ecx
-# CHECK-NEXT: 1 1 0.33 addl %eax, %edx
-# CHECK-NEXT: 1 1 0.33 addl %eax, %ebx
-# CHECK-NEXT: 1 1 0.33 addl %edx, %esi
-# CHECK-NEXT: 1 1 0.33 addl %ebx, %eax
-# CHECK-NEXT: 1 1 0.33 addl %edx, %esi
-# CHECK-NEXT: 1 1 0.33 addl %ebx, %eax
-# CHECK-NEXT: 1 1 0.33 addl %ebx, %eax
+# CHECK-NEXT: 1 1 0.50 addl %eax, %ecx
+# CHECK-NEXT: 1 1 0.50 addl %eax, %edx
+# CHECK-NEXT: 1 1 0.50 addl %eax, %ebx
+# CHECK-NEXT: 1 1 0.50 addl %edx, %esi
+# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
+# CHECK-NEXT: 1 1 0.50 addl %edx, %esi
+# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
+# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 2.66 2.67 - 2.67 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 4.00 4.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.33 0.33 - 0.34 - - addl %eax, %ecx
-# CHECK-NEXT: - - 0.33 0.34 - 0.33 - - addl %eax, %edx
-# CHECK-NEXT: - - 0.34 0.33 - 0.33 - - addl %eax, %ebx
-# CHECK-NEXT: - - 0.33 0.33 - 0.34 - - addl %edx, %esi
-# CHECK-NEXT: - - 0.33 0.34 - 0.33 - - addl %ebx, %eax
-# CHECK-NEXT: - - 0.34 0.33 - 0.33 - - addl %edx, %esi
-# CHECK-NEXT: - - 0.33 0.33 - 0.34 - - addl %ebx, %eax
-# CHECK-NEXT: - - 0.33 0.34 - 0.33 - - addl %ebx, %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - addl %eax, %ecx
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - - - - - - - addl %eax, %edx
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - - - - - - - addl %eax, %ebx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - addl %edx, %esi
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - addl %ebx, %eax
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - addl %edx, %esi
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - addl %ebx, %eax
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - addl %ebx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . addl %eax, %ecx
-# CHECK-NEXT: [0,1] DeER . . . addl %eax, %edx
-# CHECK-NEXT: [0,2] DeER . . . addl %eax, %ebx
-# CHECK-NEXT: [0,3] D=eER. . . addl %edx, %esi
-# CHECK-NEXT: [0,4] .DeER. . . addl %ebx, %eax
-# CHECK-NEXT: [0,5] .D=eER . . addl %edx, %esi
-# CHECK-NEXT: [0,6] .D=eER . . addl %ebx, %eax
-# CHECK-NEXT: [0,7] .D==eER . . addl %ebx, %eax
-# CHECK-NEXT: [1,0] . D==eER . . addl %eax, %ecx
-# CHECK-NEXT: [1,1] . D==eER . . addl %eax, %edx
-# CHECK-NEXT: [1,2] . D==eER . . addl %eax, %ebx
-# CHECK-NEXT: [1,3] . D===eER . . addl %edx, %esi
-# CHECK-NEXT: [1,4] . D==eER . . addl %ebx, %eax
-# CHECK-NEXT: [1,5] . D===eER. . addl %edx, %esi
-# CHECK-NEXT: [1,6] . D===eER. . addl %ebx, %eax
-# CHECK-NEXT: [1,7] . D====eER . addl %ebx, %eax
-# CHECK-NEXT: [2,0] . D====eER . addl %eax, %ecx
-# CHECK-NEXT: [2,1] . D====eER . addl %eax, %edx
-# CHECK-NEXT: [2,2] . D====eER . addl %eax, %ebx
-# CHECK-NEXT: [2,3] . D=====eER . addl %edx, %esi
-# CHECK-NEXT: [2,4] . D====eER . addl %ebx, %eax
-# CHECK-NEXT: [2,5] . D=====eER. addl %edx, %esi
-# CHECK-NEXT: [2,6] . D=====eER. addl %ebx, %eax
-# CHECK-NEXT: [2,7] . D======eER addl %ebx, %eax
+# CHECK: [0,0] DeER . . . . addl %eax, %ecx
+# CHECK-NEXT: [0,1] DeER . . . . addl %eax, %edx
+# CHECK-NEXT: [0,2] D=eER. . . . addl %eax, %ebx
+# CHECK-NEXT: [0,3] D=eER. . . . addl %edx, %esi
+# CHECK-NEXT: [0,4] .D=eER . . . addl %ebx, %eax
+# CHECK-NEXT: [0,5] .D=eER . . . addl %edx, %esi
+# CHECK-NEXT: [0,6] .D==eER . . . addl %ebx, %eax
+# CHECK-NEXT: [0,7] .D===eER . . . addl %ebx, %eax
+# CHECK-NEXT: [1,0] . D====eER. . . addl %eax, %ecx
+# CHECK-NEXT: [1,1] . D===eE-R. . . addl %eax, %edx
+# CHECK-NEXT: [1,2] . D===eE-R. . . addl %eax, %ebx
+# CHECK-NEXT: [1,3] . D====eER. . . addl %edx, %esi
+# CHECK-NEXT: [1,4] . D====eER . . addl %ebx, %eax
+# CHECK-NEXT: [1,5] . D====eER . . addl %edx, %esi
+# CHECK-NEXT: [1,6] . D=====eER . . addl %ebx, %eax
+# CHECK-NEXT: [1,7] . D======eER . . addl %ebx, %eax
+# CHECK-NEXT: [2,0] . D=======eER. . addl %eax, %ecx
+# CHECK-NEXT: [2,1] . D======eE-R. . addl %eax, %edx
+# CHECK-NEXT: [2,2] . D======eE-R. . addl %eax, %ebx
+# CHECK-NEXT: [2,3] . D=======eER. . addl %edx, %esi
+# CHECK-NEXT: [2,4] . D=======eER . addl %ebx, %eax
+# CHECK-NEXT: [2,5] . D=======eER . addl %edx, %esi
+# CHECK-NEXT: [2,6] . D========eER. addl %ebx, %eax
+# CHECK-NEXT: [2,7] . D=========eER addl %ebx, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -99,11 +111,11 @@ add %ebx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 3.0 0.3 0.0 addl %eax, %ecx
-# CHECK-NEXT: 1. 3 3.0 0.3 0.0 addl %eax, %edx
-# CHECK-NEXT: 2. 3 3.0 0.3 0.0 addl %eax, %ebx
-# CHECK-NEXT: 3. 3 4.0 0.0 0.0 addl %edx, %esi
-# CHECK-NEXT: 4. 3 3.0 0.0 0.0 addl %ebx, %eax
-# CHECK-NEXT: 5. 3 4.0 0.0 0.0 addl %edx, %esi
-# CHECK-NEXT: 6. 3 4.0 0.0 0.0 addl %ebx, %eax
-# CHECK-NEXT: 7. 3 5.0 0.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 0. 3 4.7 1.0 0.0 addl %eax, %ecx
+# CHECK-NEXT: 1. 3 4.0 0.3 0.7 addl %eax, %edx
+# CHECK-NEXT: 2. 3 4.3 0.7 0.7 addl %eax, %ebx
+# CHECK-NEXT: 3. 3 5.0 0.0 0.0 addl %edx, %esi
+# CHECK-NEXT: 4. 3 5.0 0.7 0.0 addl %ebx, %eax
+# CHECK-NEXT: 5. 3 5.0 0.0 0.0 addl %edx, %esi
+# CHECK-NEXT: 6. 3 6.0 0.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 7. 3 7.0 0.0 0.0 addl %ebx, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -resource-pressure=false -retire-stats -iterations=1 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -resource-pressure=false -retire-stats -iterations=1 < %s | FileCheck %s
vsqrtps %xmm0, %xmm2
vaddps %xmm0, %xmm1, %xmm2
@@ -20,13 +20,13 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 16
-# CHECK-NEXT: Total Cycles: 20
+# CHECK-NEXT: Total Cycles: 22
# CHECK-NEXT: Total uOps: 16
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.80
-# CHECK-NEXT: IPC: 0.80
-# CHECK-NEXT: Block RThroughput: 15.0
+# CHECK-NEXT: uOps Per Cycle: 0.73
+# CHECK-NEXT: IPC: 0.73
+# CHECK-NEXT: Block RThroughput: 18.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -37,25 +37,26 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
# CHECK: Retire Control Unit - number of cycles where we saw N instructions retired:
# CHECK-NEXT: [# retired], [# cycles]
-# CHECK-NEXT: 0, 16 (80.0%)
-# CHECK-NEXT: 1, 3 (15.0%)
-# CHECK-NEXT: 13, 1 (5.0%)
+# CHECK-NEXT: 0, 11 (50.0%)
+# CHECK-NEXT: 1, 9 (40.9%)
+# CHECK-NEXT: 3, 1 (4.5%)
+# CHECK-NEXT: 4, 1 (4.5%)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s
# The vmul can start executing 3cy in advance. That is beause the first use
# operand (i.e. %xmm1) is a ReadAfterLd. That means, the memory operand is
@@ -10,12 +10,12 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 14
-# CHECK-NEXT: Total uOps: 3
+# CHECK-NEXT: Total Cycles: 13
+# CHECK-NEXT: Total uOps: 2
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.21
-# CHECK-NEXT: IPC: 0.14
+# CHECK-NEXT: uOps Per Cycle: 0.15
+# CHECK-NEXT: IPC: 0.15
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -27,15 +27,15 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 2 11 1.00 * vmulps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1 10 1.00 * vmulps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
-# CHECK-NEXT: 0123
+# CHECK-NEXT: 012
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [0,1] DeeeeeeeeeeeER vmulps (%rdi), %xmm1, %xmm2
+# CHECK: [0,0] DeeeeeER . . vaddps %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [0,1] DeeeeeeeeeeER vmulps (%rdi), %xmm1, %xmm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -resource-pressure=0 -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=0 -timeline < %s | FileCheck %s
imull %esi
imull (%rdi)
@@ -9,12 +9,12 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 13
-# CHECK-NEXT: Total uOps: 7
+# CHECK-NEXT: Total Cycles: 12
+# CHECK-NEXT: Total uOps: 2
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.54
-# CHECK-NEXT: IPC: 0.15
+# CHECK-NEXT: uOps Per Cycle: 0.17
+# CHECK-NEXT: IPC: 0.17
# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
@@ -26,15 +26,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 3 4 1.00 imull %esi
-# CHECK-NEXT: 4 9 1.00 * imull (%rdi)
+# CHECK-NEXT: 1 4 1.00 imull %esi
+# CHECK-NEXT: 1 8 1.00 * imull (%rdi)
# CHECK: Timeline view:
-# CHECK-NEXT: 012
+# CHECK-NEXT: 01
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeER . . imull %esi
-# CHECK-NEXT: [0,1] .DeeeeeeeeeER imull (%rdi)
+# CHECK: [0,0] DeeeeER .. imull %esi
+# CHECK-NEXT: [0,1] D=eeeeeeeeER imull (%rdi)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -44,4 +44,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
-# CHECK-NEXT: 1. 1 1.0 1.0 0.0 imull (%rdi)
+# CHECK-NEXT: 1. 1 2.0 1.0 0.0 imull (%rdi)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -resource-pressure=0 -timeline -dispatch=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=0 -timeline -dispatch=3 < %s | FileCheck %s
add %rdi, %rsi
add (%rsp), %rsi
@@ -7,13 +7,13 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 3
-# CHECK-NEXT: Total Cycles: 9
-# CHECK-NEXT: Total uOps: 4
+# CHECK-NEXT: Total Cycles: 8
+# CHECK-NEXT: Total uOps: 3
# CHECK: Dispatch Width: 3
-# CHECK-NEXT: uOps Per Cycle: 0.44
-# CHECK-NEXT: IPC: 0.33
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: uOps Per Cycle: 0.38
+# CHECK-NEXT: IPC: 0.38
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,16 +24,16 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 addq %rdi, %rsi
-# CHECK-NEXT: 2 6 0.50 * addq (%rsp), %rsi
-# CHECK-NEXT: 1 1 0.33 addq %rdx, %r8
+# CHECK-NEXT: 1 1 0.50 addq %rdi, %rsi
+# CHECK-NEXT: 1 5 0.50 * addq (%rsp), %rsi
+# CHECK-NEXT: 1 1 0.50 addq %rdx, %r8
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: Index 01234567
-# CHECK: [0,0] DeER . . addq %rdi, %rsi
-# CHECK-NEXT: [0,1] DeeeeeeER addq (%rsp), %rsi
-# CHECK-NEXT: [0,2] .DeE----R addq %rdx, %r8
+# CHECK: [0,0] DeER . . addq %rdi, %rsi
+# CHECK-NEXT: [0,1] DeeeeeER addq (%rsp), %rsi
+# CHECK-NEXT: [0,2] D=eE---R addq %rdx, %r8
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -44,4 +44,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
-# CHECK-NEXT: 2. 1 1.0 1.0 4.0 addq %rdx, %r8
+# CHECK-NEXT: 2. 1 2.0 2.0 3.0 addq %rdx, %r8
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
# The register move from XMM0 to XMM1 can be eliminated at register renaming
# stage. So, it should not consume pipeline resources.
@@ -10,12 +10,12 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 9
-# CHECK-NEXT: Total Cycles: 9
+# CHECK-NEXT: Total Cycles: 11
# CHECK-NEXT: Total uOps: 9
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: uOps Per Cycle: 0.82
+# CHECK-NEXT: IPC: 0.82
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -28,45 +28,68 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm1, %xmm1, %xmm2
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 9
-# CHECK-NEXT: Max number of mappings used: 8
+# CHECK-NEXT: Total number of mappings created: 6
+# CHECK-NEXT: Max number of mappings used: 6
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 6
+# CHECK-NEXT: Max number of mappings used: 6
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 1.00 - 1.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - 0.67 1.33 - - - - 1.00 1.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - 1.00 - - vmovaps %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - 0.33 0.67 - - - - - 1.00 - - - - vmovaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 0.33 0.67 - - - - 1.00 - - - - - vaddps %xmm1, %xmm1, %xmm2
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: 0
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] DeER . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [0,2] D=eeeER . vaddps %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [1,0] D-----R . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] .DeE--R . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [1,2] .D=eeeER. vaddps %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [2,0] .D-----R. vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] .D=eE--R. vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [2,2] . D=eeeER vaddps %xmm1, %xmm1, %xmm2
+# CHECK: [0,0] DR . . vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] DeER . . vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [0,2] D=eeeeeER . vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [1,0] D-------R . vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] .DeE----R . vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [1,2] .D=eeeeeER. vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [2,0] .D-------R. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] .D=eE----R. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [2,2] . D=eeeeeER vaddps %xmm1, %xmm1, %xmm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -75,6 +98,6 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 3.3 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 3 1.3 1.3 1.3 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 0. 3 0.0 0.0 4.7 vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 3 1.3 1.3 2.7 vmovaps %xmm0, %xmm1
# CHECK-NEXT: 2. 3 2.0 0.0 0.0 vaddps %xmm1, %xmm1, %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
pxor %mm0, %mm0
movq %mm0, %mm1
@@ -14,13 +14,13 @@ movdqu %xmm5, %xmm0
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 27
-# CHECK-NEXT: Total Cycles: 22
+# CHECK-NEXT: Total Cycles: 18
# CHECK-NEXT: Total uOps: 27
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.23
-# CHECK-NEXT: IPC: 1.23
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: uOps Per Cycle: 1.50
+# CHECK-NEXT: IPC: 1.50
+# CHECK-NEXT: Block RThroughput: 3.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -31,77 +31,99 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 pxor %mm0, %mm0
-# CHECK-NEXT: 1 1 0.50 movq %mm0, %mm1
+# CHECK-NEXT: 1 0 0.25 pxor %mm0, %mm0
+# CHECK-NEXT: 1 2 0.50 movq %mm0, %mm1
# CHECK-NEXT: 1 0 0.25 xorps %xmm0, %xmm0
-# CHECK-NEXT: 1 1 1.00 movaps %xmm0, %xmm1
-# CHECK-NEXT: 1 1 1.00 movups %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 movapd %xmm2, %xmm3
-# CHECK-NEXT: 1 1 1.00 movupd %xmm3, %xmm4
-# CHECK-NEXT: 1 1 0.33 movdqa %xmm4, %xmm5
-# CHECK-NEXT: 1 1 0.33 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 1 1 0.50 movaps %xmm0, %xmm1
+# CHECK-NEXT: 1 1 0.50 movups %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 movapd %xmm2, %xmm3
+# CHECK-NEXT: 1 1 0.50 movupd %xmm3, %xmm4
+# CHECK-NEXT: 1 2 0.50 movdqa %xmm4, %xmm5
+# CHECK-NEXT: 1 2 0.50 movdqu %xmm5, %xmm0
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 27
-# CHECK-NEXT: Max number of mappings used: 21
+# CHECK-NEXT: Total number of mappings created: 21
+# CHECK-NEXT: Max number of mappings used: 16
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 21
+# CHECK-NEXT: Max number of mappings used: 16
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.67 1.67 - 4.67 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - 2.67 1.33 - 3.00 - - 3.33 3.67 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 0.67 - 0.33 - - pxor %mm0, %mm0
-# CHECK-NEXT: - - 1.00 - - - - - movq %mm0, %mm1
-# CHECK-NEXT: - - - - - - - - xorps %xmm0, %xmm0
-# CHECK-NEXT: - - - - - 1.00 - - movaps %xmm0, %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - movups %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - movapd %xmm2, %xmm3
-# CHECK-NEXT: - - - - - 1.00 - - movupd %xmm3, %xmm4
-# CHECK-NEXT: - - - 1.00 - - - - movdqa %xmm4, %xmm5
-# CHECK-NEXT: - - 0.67 - - 0.33 - - movdqu %xmm5, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - pxor %mm0, %mm0
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - movq %mm0, %mm1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - xorps %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.33 0.67 - - - - movaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.33 0.67 - - - - movups %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 1.00 - - - - - movapd %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.33 0.67 - - - - movupd %xmm3, %xmm4
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 1.00 - - - - - movdqa %xmm4, %xmm5
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 0.33 0.67 - - - - movdqu %xmm5, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 01
+# CHECK-NEXT: 01234567
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . .. pxor %mm0, %mm0
-# CHECK-NEXT: [0,1] D=eER. . . .. movq %mm0, %mm1
-# CHECK-NEXT: [0,2] D---R. . . .. xorps %xmm0, %xmm0
-# CHECK-NEXT: [0,3] D=eER. . . .. movaps %xmm0, %xmm1
-# CHECK-NEXT: [0,4] .D=eER . . .. movups %xmm1, %xmm2
-# CHECK-NEXT: [0,5] .D==eER . . .. movapd %xmm2, %xmm3
-# CHECK-NEXT: [0,6] .D===eER . . .. movupd %xmm3, %xmm4
-# CHECK-NEXT: [0,7] .D====eER . . .. movdqa %xmm4, %xmm5
-# CHECK-NEXT: [0,8] . D====eER. . .. movdqu %xmm5, %xmm0
-# CHECK-NEXT: [1,0] . DeE----R. . .. pxor %mm0, %mm0
-# CHECK-NEXT: [1,1] . D=eE---R. . .. movq %mm0, %mm1
-# CHECK-NEXT: [1,2] . D=====ER. . .. xorps %xmm0, %xmm0
-# CHECK-NEXT: [1,3] . D====eER . .. movaps %xmm0, %xmm1
-# CHECK-NEXT: [1,4] . D=====eER . .. movups %xmm1, %xmm2
-# CHECK-NEXT: [1,5] . D======eER . .. movapd %xmm2, %xmm3
-# CHECK-NEXT: [1,6] . D=======eER . .. movupd %xmm3, %xmm4
-# CHECK-NEXT: [1,7] . D=======eER. .. movdqa %xmm4, %xmm5
-# CHECK-NEXT: [1,8] . D========eER .. movdqu %xmm5, %xmm0
-# CHECK-NEXT: [2,0] . DeE--------R .. pxor %mm0, %mm0
-# CHECK-NEXT: [2,1] . D=eE-------R .. movq %mm0, %mm1
-# CHECK-NEXT: [2,2] . D========ER .. xorps %xmm0, %xmm0
-# CHECK-NEXT: [2,3] . D========eER .. movaps %xmm0, %xmm1
-# CHECK-NEXT: [2,4] . D=========eER .. movups %xmm1, %xmm2
-# CHECK-NEXT: [2,5] . D==========eER .. movapd %xmm2, %xmm3
-# CHECK-NEXT: [2,6] . .D==========eER.. movupd %xmm3, %xmm4
-# CHECK-NEXT: [2,7] . .D===========eER. movdqa %xmm4, %xmm5
-# CHECK-NEXT: [2,8] . .D============eER movdqu %xmm5, %xmm0
+# CHECK: [0,0] DR . . . . pxor %mm0, %mm0
+# CHECK-NEXT: [0,1] DeeER. . . . movq %mm0, %mm1
+# CHECK-NEXT: [0,2] D---R. . . . xorps %xmm0, %xmm0
+# CHECK-NEXT: [0,3] DeE-R. . . . movaps %xmm0, %xmm1
+# CHECK-NEXT: [0,4] .DeER. . . . movups %xmm1, %xmm2
+# CHECK-NEXT: [0,5] .D=eER . . . movapd %xmm2, %xmm3
+# CHECK-NEXT: [0,6] .D==eER . . . movupd %xmm3, %xmm4
+# CHECK-NEXT: [0,7] .D===eeER . . . movdqa %xmm4, %xmm5
+# CHECK-NEXT: [0,8] . D====eeER . . movdqu %xmm5, %xmm0
+# CHECK-NEXT: [1,0] . D-------R . . pxor %mm0, %mm0
+# CHECK-NEXT: [1,1] . DeeE----R . . movq %mm0, %mm1
+# CHECK-NEXT: [1,2] . D-------R . . xorps %xmm0, %xmm0
+# CHECK-NEXT: [1,3] . DeE-----R . . movaps %xmm0, %xmm1
+# CHECK-NEXT: [1,4] . D=eE----R . . movups %xmm1, %xmm2
+# CHECK-NEXT: [1,5] . D==eE---R . . movapd %xmm2, %xmm3
+# CHECK-NEXT: [1,6] . D===eE--R . . movupd %xmm3, %xmm4
+# CHECK-NEXT: [1,7] . D===eeE-R . . movdqa %xmm4, %xmm5
+# CHECK-NEXT: [1,8] . D=====eeER . . movdqu %xmm5, %xmm0
+# CHECK-NEXT: [2,0] . D--------R . . pxor %mm0, %mm0
+# CHECK-NEXT: [2,1] . D=eeE----R . . movq %mm0, %mm1
+# CHECK-NEXT: [2,2] . D-------R . . xorps %xmm0, %xmm0
+# CHECK-NEXT: [2,3] . D==eE----R. . movaps %xmm0, %xmm1
+# CHECK-NEXT: [2,4] . D===eE---R. . movups %xmm1, %xmm2
+# CHECK-NEXT: [2,5] . D====eE--R. . movapd %xmm2, %xmm3
+# CHECK-NEXT: [2,6] . .D====eE-R. . movupd %xmm3, %xmm4
+# CHECK-NEXT: [2,7] . .D=====eeER . movdqa %xmm4, %xmm5
+# CHECK-NEXT: [2,8] . .D=======eeER movdqu %xmm5, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -110,12 +132,12 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 1.0 1.0 4.0 pxor %mm0, %mm0
-# CHECK-NEXT: 1. 3 2.0 0.0 3.3 movq %mm0, %mm1
-# CHECK-NEXT: 2. 3 5.0 0.0 1.0 xorps %xmm0, %xmm0
-# CHECK-NEXT: 3. 3 5.3 0.7 0.0 movaps %xmm0, %xmm1
-# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movups %xmm1, %xmm2
-# CHECK-NEXT: 5. 3 7.0 0.0 0.0 movapd %xmm2, %xmm3
-# CHECK-NEXT: 6. 3 7.7 0.0 0.0 movupd %xmm3, %xmm4
-# CHECK-NEXT: 7. 3 8.3 0.0 0.0 movdqa %xmm4, %xmm5
-# CHECK-NEXT: 8. 3 9.0 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 0. 3 0.0 0.0 5.0 pxor %mm0, %mm0
+# CHECK-NEXT: 1. 3 1.3 1.3 2.7 movq %mm0, %mm1
+# CHECK-NEXT: 2. 3 0.0 0.0 5.7 xorps %xmm0, %xmm0
+# CHECK-NEXT: 3. 3 1.7 1.7 3.3 movaps %xmm0, %xmm1
+# CHECK-NEXT: 4. 3 2.3 0.0 2.3 movups %xmm1, %xmm2
+# CHECK-NEXT: 5. 3 3.3 0.0 1.7 movapd %xmm2, %xmm3
+# CHECK-NEXT: 6. 3 4.0 0.0 1.0 movupd %xmm3, %xmm4
+# CHECK-NEXT: 7. 3 4.7 0.0 0.3 movdqa %xmm4, %xmm5
+# CHECK-NEXT: 8. 3 6.3 0.0 0.0 movdqu %xmm5, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
vxorps %xmm0, %xmm0, %xmm0
vmovaps %xmm0, %xmm1
@@ -11,13 +11,13 @@ vmovdqu %xmm5, %xmm0
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 21
-# CHECK-NEXT: Total Cycles: 21
+# CHECK-NEXT: Total Cycles: 17
# CHECK-NEXT: Total uOps: 21
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: uOps Per Cycle: 1.24
+# CHECK-NEXT: IPC: 1.24
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,66 +29,88 @@ vmovdqu %xmm5, %xmm0
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 1 1 1.00 vmovups %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovapd %xmm2, %xmm3
-# CHECK-NEXT: 1 1 1.00 vmovupd %xmm3, %xmm4
-# CHECK-NEXT: 1 1 0.33 vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: 1 1 0.33 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 1 1 0.50 vmovups %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmovapd %xmm2, %xmm3
+# CHECK-NEXT: 1 1 0.50 vmovupd %xmm3, %xmm4
+# CHECK-NEXT: 1 2 0.50 vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: 1 2 0.50 vmovdqu %xmm5, %xmm0
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 21
-# CHECK-NEXT: Max number of mappings used: 17
+# CHECK-NEXT: Total number of mappings created: 18
+# CHECK-NEXT: Max number of mappings used: 15
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 18
+# CHECK-NEXT: Max number of mappings used: 15
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - 4.00 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 1.33 0.67 - - 3.00 3.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - 1.00 - - vmovaps %xmm0, %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - vmovups %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovapd %xmm2, %xmm3
-# CHECK-NEXT: - - - - - 1.00 - - vmovupd %xmm3, %xmm4
-# CHECK-NEXT: - - - 1.00 - - - - vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: - - 1.00 - - - - - vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.67 0.33 - - - - vmovaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 0.33 0.67 - - - - 0.67 0.33 - - - - vmovups %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.33 0.67 - - - - 0.33 0.67 - - - - vmovapd %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.33 0.67 - - - - vmovupd %xmm3, %xmm4
+# CHECK-NEXT: - - - - - - - - - - 0.67 0.33 - - 0.33 0.67 - - - - vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 0.67 0.33 - - 0.67 0.33 - - - - vmovdqu %xmm5, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 0
+# CHECK-NEXT: 0123456
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] DeER . . . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [0,2] D=eER. . . . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [0,3] D==eER . . . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [0,4] .D==eER . . . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [0,5] .D===eER . . . vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [0,6] .D====eER . . . vmovdqu %xmm5, %xmm0
-# CHECK-NEXT: [1,0] .D=====ER . . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] . D====eER. . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [1,2] . D=====eER . . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [1,3] . D======eER . . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [1,4] . D=======eER . . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [1,5] . D=======eER . . vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [1,6] . D========eER. . vmovdqu %xmm5, %xmm0
-# CHECK-NEXT: [2,0] . D=========ER. . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] . D=========eER . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [2,2] . D=========eER . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [2,3] . D==========eER . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [2,4] . D===========eER . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [2,5] . D============eER. vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [2,6] . D============eER vmovdqu %xmm5, %xmm0
+# CHECK: [0,0] DR . . .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] DeER . . .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [0,2] D=eER. . .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [0,3] D==eER . .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [0,4] .D==eER . .. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [0,5] .D===eeER . .. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [0,6] .D=====eeER .. vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: [1,0] .D--------R .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] . DeE-----R .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [1,2] . D=eE----R .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [1,3] . D==eE----R .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [1,4] . D===eE---R .. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [1,5] . D===eeE-R .. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [1,6] . D=====eeER .. vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: [2,0] . D--------R .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] . D==eE----R .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [2,2] . D===eE--R .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [2,3] . D====eE--R .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [2,4] . D=====eE-R .. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [2,5] . D======eeER.. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [2,6] . D=======eeER vmovdqu %xmm5, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -97,10 +119,10 @@ vmovdqu %xmm5, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 5.3 0.0 0.0 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 3 5.3 0.3 0.0 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 2. 3 6.0 0.0 0.0 vmovups %xmm1, %xmm2
-# CHECK-NEXT: 3. 3 7.0 0.0 0.0 vmovapd %xmm2, %xmm3
-# CHECK-NEXT: 4. 3 7.7 0.0 0.0 vmovupd %xmm3, %xmm4
-# CHECK-NEXT: 5. 3 8.3 0.0 0.0 vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: 6. 3 9.0 0.0 0.0 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 0. 3 0.0 0.0 5.3 vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 3 1.7 1.7 3.0 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 2. 3 2.7 0.3 2.0 vmovups %xmm1, %xmm2
+# CHECK-NEXT: 3. 3 3.7 0.0 2.0 vmovapd %xmm2, %xmm3
+# CHECK-NEXT: 4. 3 4.3 0.0 1.3 vmovupd %xmm3, %xmm4
+# CHECK-NEXT: 5. 3 5.0 0.0 0.3 vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: 6. 3 6.7 0.0 0.0 vmovdqu %xmm5, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
xor %eax, %eax
mov %eax, %ebx
@@ -9,13 +9,13 @@ mov %edx, %eax
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 15
-# CHECK-NEXT: Total Cycles: 15
+# CHECK-NEXT: Total Cycles: 11
# CHECK-NEXT: Total uOps: 15
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: uOps Per Cycle: 1.36
+# CHECK-NEXT: IPC: 1.36
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -27,56 +27,78 @@ mov %edx, %eax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 xorl %eax, %eax
-# CHECK-NEXT: 1 1 0.33 movl %eax, %ebx
-# CHECK-NEXT: 1 1 0.33 movl %ebx, %ecx
-# CHECK-NEXT: 1 1 0.33 movl %ecx, %edx
-# CHECK-NEXT: 1 1 0.33 movl %edx, %eax
+# CHECK-NEXT: 1 1 0.50 movl %eax, %ebx
+# CHECK-NEXT: 1 1 0.50 movl %ebx, %ecx
+# CHECK-NEXT: 1 1 0.50 movl %ecx, %edx
+# CHECK-NEXT: 1 1 0.50 movl %edx, %eax
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 18
-# CHECK-NEXT: Max number of mappings used: 15
+# CHECK-NEXT: Total number of mappings created: 12
+# CHECK-NEXT: Max number of mappings used: 11
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 12
+# CHECK-NEXT: Max number of mappings used: 11
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.33 1.33 - 1.33 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - - xorl %eax, %eax
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movl %eax, %ebx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movl %ebx, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movl %ecx, %edx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movl %edx, %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - xorl %eax, %eax
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - movl %eax, %ebx
+# CHECK-NEXT: - - - - - 0.67 0.33 - - - - - - - - - - - - - movl %ebx, %ecx
+# CHECK-NEXT: - - - - - 0.33 0.67 - - - - - - - - - - - - - movl %ecx, %edx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - movl %edx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 0
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . . xorl %eax, %eax
-# CHECK-NEXT: [0,1] DeER . . . movl %eax, %ebx
-# CHECK-NEXT: [0,2] D=eER. . . movl %ebx, %ecx
-# CHECK-NEXT: [0,3] D==eER . . movl %ecx, %edx
-# CHECK-NEXT: [0,4] .D==eER . . movl %edx, %eax
-# CHECK-NEXT: [1,0] .D===ER . . xorl %eax, %eax
-# CHECK-NEXT: [1,1] .D===eER . . movl %eax, %ebx
-# CHECK-NEXT: [1,2] .D====eER . . movl %ebx, %ecx
-# CHECK-NEXT: [1,3] . D====eER. . movl %ecx, %edx
-# CHECK-NEXT: [1,4] . D=====eER . movl %edx, %eax
-# CHECK-NEXT: [2,0] . D======ER . xorl %eax, %eax
-# CHECK-NEXT: [2,1] . D======eER . movl %eax, %ebx
-# CHECK-NEXT: [2,2] . D======eER . movl %ebx, %ecx
-# CHECK-NEXT: [2,3] . D=======eER. movl %ecx, %edx
-# CHECK-NEXT: [2,4] . D========eER movl %edx, %eax
+# CHECK: [0,0] DR . . xorl %eax, %eax
+# CHECK-NEXT: [0,1] DeER . . movl %eax, %ebx
+# CHECK-NEXT: [0,2] D=eER. . movl %ebx, %ecx
+# CHECK-NEXT: [0,3] D==eER . movl %ecx, %edx
+# CHECK-NEXT: [0,4] .D==eER . movl %edx, %eax
+# CHECK-NEXT: [1,0] .D----R . xorl %eax, %eax
+# CHECK-NEXT: [1,1] .DeE--R . movl %eax, %ebx
+# CHECK-NEXT: [1,2] .D=eE-R . movl %ebx, %ecx
+# CHECK-NEXT: [1,3] . D=eE-R . movl %ecx, %edx
+# CHECK-NEXT: [1,4] . D==eER . movl %edx, %eax
+# CHECK-NEXT: [2,0] . D----R . xorl %eax, %eax
+# CHECK-NEXT: [2,1] . D==eER . movl %eax, %ebx
+# CHECK-NEXT: [2,2] . D==eER . movl %ebx, %ecx
+# CHECK-NEXT: [2,3] . D===eER. movl %ecx, %edx
+# CHECK-NEXT: [2,4] . D====eER movl %edx, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -85,8 +107,8 @@ mov %edx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 3.7 0.0 0.0 xorl %eax, %eax
-# CHECK-NEXT: 1. 3 4.0 0.3 0.0 movl %eax, %ebx
-# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movl %ebx, %ecx
-# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movl %ecx, %edx
-# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movl %edx, %eax
+# CHECK-NEXT: 0. 3 0.0 0.0 2.7 xorl %eax, %eax
+# CHECK-NEXT: 1. 3 1.7 1.7 0.7 movl %eax, %ebx
+# CHECK-NEXT: 2. 3 2.3 0.0 0.3 movl %ebx, %ecx
+# CHECK-NEXT: 3. 3 3.0 0.0 0.3 movl %ecx, %edx
+# CHECK-NEXT: 4. 3 3.7 0.0 0.0 movl %edx, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=3 -timeline -register-file-stats < %s | FileCheck %s
xor %rax, %rax
mov %rax, %rbx
@@ -9,13 +9,13 @@ mov %rdx, %rax
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 15
-# CHECK-NEXT: Total Cycles: 15
+# CHECK-NEXT: Total Cycles: 11
# CHECK-NEXT: Total uOps: 15
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.00
-# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: uOps Per Cycle: 1.36
+# CHECK-NEXT: IPC: 1.36
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -27,56 +27,78 @@ mov %rdx, %rax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 xorq %rax, %rax
-# CHECK-NEXT: 1 1 0.33 movq %rax, %rbx
-# CHECK-NEXT: 1 1 0.33 movq %rbx, %rcx
-# CHECK-NEXT: 1 1 0.33 movq %rcx, %rdx
-# CHECK-NEXT: 1 1 0.33 movq %rdx, %rax
+# CHECK-NEXT: 1 1 0.50 movq %rax, %rbx
+# CHECK-NEXT: 1 1 0.50 movq %rbx, %rcx
+# CHECK-NEXT: 1 1 0.50 movq %rcx, %rdx
+# CHECK-NEXT: 1 1 0.50 movq %rdx, %rax
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 18
-# CHECK-NEXT: Max number of mappings used: 15
+# CHECK-NEXT: Total number of mappings created: 12
+# CHECK-NEXT: Max number of mappings used: 11
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 12
+# CHECK-NEXT: Max number of mappings used: 11
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.33 1.33 - 1.33 - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - - - xorq %rax, %rax
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movq %rax, %rbx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movq %rbx, %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movq %rcx, %rdx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movq %rdx, %rax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - xorq %rax, %rax
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - movq %rax, %rbx
+# CHECK-NEXT: - - - - - 0.67 0.33 - - - - - - - - - - - - - movq %rbx, %rcx
+# CHECK-NEXT: - - - - - 0.33 0.67 - - - - - - - - - - - - - movq %rcx, %rdx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - movq %rdx, %rax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 0
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . . xorq %rax, %rax
-# CHECK-NEXT: [0,1] DeER . . . movq %rax, %rbx
-# CHECK-NEXT: [0,2] D=eER. . . movq %rbx, %rcx
-# CHECK-NEXT: [0,3] D==eER . . movq %rcx, %rdx
-# CHECK-NEXT: [0,4] .D==eER . . movq %rdx, %rax
-# CHECK-NEXT: [1,0] .D===ER . . xorq %rax, %rax
-# CHECK-NEXT: [1,1] .D===eER . . movq %rax, %rbx
-# CHECK-NEXT: [1,2] .D====eER . . movq %rbx, %rcx
-# CHECK-NEXT: [1,3] . D====eER. . movq %rcx, %rdx
-# CHECK-NEXT: [1,4] . D=====eER . movq %rdx, %rax
-# CHECK-NEXT: [2,0] . D======ER . xorq %rax, %rax
-# CHECK-NEXT: [2,1] . D======eER . movq %rax, %rbx
-# CHECK-NEXT: [2,2] . D======eER . movq %rbx, %rcx
-# CHECK-NEXT: [2,3] . D=======eER. movq %rcx, %rdx
-# CHECK-NEXT: [2,4] . D========eER movq %rdx, %rax
+# CHECK: [0,0] DR . . xorq %rax, %rax
+# CHECK-NEXT: [0,1] DeER . . movq %rax, %rbx
+# CHECK-NEXT: [0,2] D=eER. . movq %rbx, %rcx
+# CHECK-NEXT: [0,3] D==eER . movq %rcx, %rdx
+# CHECK-NEXT: [0,4] .D==eER . movq %rdx, %rax
+# CHECK-NEXT: [1,0] .D----R . xorq %rax, %rax
+# CHECK-NEXT: [1,1] .DeE--R . movq %rax, %rbx
+# CHECK-NEXT: [1,2] .D=eE-R . movq %rbx, %rcx
+# CHECK-NEXT: [1,3] . D=eE-R . movq %rcx, %rdx
+# CHECK-NEXT: [1,4] . D==eER . movq %rdx, %rax
+# CHECK-NEXT: [2,0] . D----R . xorq %rax, %rax
+# CHECK-NEXT: [2,1] . D==eER . movq %rax, %rbx
+# CHECK-NEXT: [2,2] . D==eER . movq %rbx, %rcx
+# CHECK-NEXT: [2,3] . D===eER. movq %rcx, %rdx
+# CHECK-NEXT: [2,4] . D====eER movq %rdx, %rax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -85,8 +107,8 @@ mov %rdx, %rax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 3.7 0.0 0.0 xorq %rax, %rax
-# CHECK-NEXT: 1. 3 4.0 0.3 0.0 movq %rax, %rbx
-# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movq %rbx, %rcx
-# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movq %rcx, %rdx
-# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movq %rdx, %rax
+# CHECK-NEXT: 0. 3 0.0 0.0 2.7 xorq %rax, %rax
+# CHECK-NEXT: 1. 3 1.7 1.7 0.7 movq %rax, %rbx
+# CHECK-NEXT: 2. 3 2.3 0.0 0.3 movq %rbx, %rcx
+# CHECK-NEXT: 3. 3 3.0 0.0 0.3 movq %rcx, %rdx
+# CHECK-NEXT: 4. 3 3.7 0.0 0.0 movq %rdx, %rax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-1.s Sat Oct 27 13:46:30 2018
@@ -1,17 +1,17 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=5 -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=5 -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
vaddps %xmm0, %xmm0, %xmm0
vmulps %xmm0, %xmm0, %xmm0
# CHECK: Iterations: 5
# CHECK-NEXT: Instructions: 10
-# CHECK-NEXT: Total Cycles: 43
+# CHECK-NEXT: Total Cycles: 53
# CHECK-NEXT: Total uOps: 10
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.23
-# CHECK-NEXT: IPC: 0.23
+# CHECK-NEXT: uOps Per Cycle: 0.19
+# CHECK-NEXT: IPC: 0.19
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Dynamic Dispatch Stall Cycles:
@@ -24,47 +24,69 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 40 (93.0%)
-# CHECK-NEXT: 2, 1 (2.3%)
-# CHECK-NEXT: 4, 2 (4.7%)
+# CHECK-NEXT: 0, 50 (94.3%)
+# CHECK-NEXT: 2, 1 (1.9%)
+# CHECK-NEXT: 4, 2 (3.8%)
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 10
# CHECK-NEXT: Max number of mappings used: 10
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 10
+# CHECK-NEXT: Max number of mappings used: 10
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - 1.00 1.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - 1.00 - - - - - vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - 1.00 - - - - - vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - 1.00 - - - - vmulps %xmm0, %xmm0, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 012
+# CHECK-NEXT: 0123456789 0123456789 012
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789
-# CHECK: [0,0] DeeeER . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] D===eeeeeER . . . . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,0] D========eeeER . . . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] D===========eeeeeER . . . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,0] .D===============eeeER . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] .D==================eeeeeER . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [3,0] .D=======================eeeER. . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [3,1] .D==========================eeeeeER. . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [4,0] . D==============================eeeER . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [4,1] . D=================================eeeeeER vmulps %xmm0, %xmm0, %xmm0
+# CHECK: [0,0] DeeeeeER . . . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] D=====eeeeeER . . . . . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,0] D==========eeeeeER . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] D===============eeeeeER . . . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,0] .D===================eeeeeER . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] .D========================eeeeeER . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [3,0] .D=============================eeeeeER . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [3,1] .D==================================eeeeeER . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [4,0] . D======================================eeeeeER . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [4,1] . D===========================================eeeeeER vmulps %xmm0, %xmm0, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -73,5 +95,5 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 5 16.2 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 5 19.2 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 0. 5 20.2 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 5 25.2 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-2.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-2.s Sat Oct 27 13:46:30 2018
@@ -1,21 +1,21 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -register-file-size=5 -iterations=5 -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -register-file-size=5 -iterations=5 -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
vaddps %xmm0, %xmm0, %xmm0
vmulps %xmm0, %xmm0, %xmm0
# CHECK: Iterations: 5
# CHECK-NEXT: Instructions: 10
-# CHECK-NEXT: Total Cycles: 43
+# CHECK-NEXT: Total Cycles: 53
# CHECK-NEXT: Total uOps: 10
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.23
-# CHECK-NEXT: IPC: 0.23
+# CHECK-NEXT: uOps Per Cycle: 0.19
+# CHECK-NEXT: IPC: 0.19
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Dynamic Dispatch Stall Cycles:
-# CHECK-NEXT: RAT - Register unavailable: 20 (46.5%)
+# CHECK-NEXT: RAT - Register unavailable: 26 (49.1%)
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
# CHECK-NEXT: LQ - Load queue full: 0
@@ -24,47 +24,69 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 36 (83.7%)
-# CHECK-NEXT: 1, 6 (14.0%)
-# CHECK-NEXT: 4, 1 (2.3%)
+# CHECK-NEXT: 0, 46 (86.8%)
+# CHECK-NEXT: 1, 6 (11.3%)
+# CHECK-NEXT: 4, 1 (1.9%)
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 10
# CHECK-NEXT: Max number of mappings used: 5
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 10
+# CHECK-NEXT: Max number of mappings used: 5
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - 1.00 1.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - 1.00 - - - - - vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - 1.00 - - - - - vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - 1.00 - - - - vmulps %xmm0, %xmm0, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 012
+# CHECK-NEXT: 0123456789 0123456789 012
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789
-# CHECK: [0,0] DeeeER . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] D===eeeeeER . . . . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,0] D========eeeER . . . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] D===========eeeeeER . . . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,0] .D===============eeeER . . . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] . D==============eeeeeER . . . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [3,0] . . D==============eeeER. . . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [3,1] . . . D==============eeeeeER. . . vmulps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [4,0] . . . . D==============eeeER . . vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [4,1] . . . . .D==============eeeeeER vmulps %xmm0, %xmm0, %xmm0
+# CHECK: [0,0] DeeeeeER . . . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] D=====eeeeeER . . . . . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,0] D==========eeeeeER . . . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] D===============eeeeeER . . . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,0] .D===================eeeeeER . . . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] . . D==================eeeeeER . . . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [3,0] . . . D==================eeeeeER . . . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [3,1] . . . . D==================eeeeeER . . . vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [4,0] . . . . . D==================eeeeeER . . vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [4,1] . . . . . . D==================eeeeeER vmulps %xmm0, %xmm0, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -73,5 +95,5 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 5 11.2 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 5 12.2 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 0. 5 14.0 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 5 15.8 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-3.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-3.s Sat Oct 27 13:46:30 2018
@@ -1,17 +1,17 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -register-file-size=5 -iterations=2 -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -register-file-size=5 -iterations=2 -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
idiv %eax
# CHECK: Iterations: 2
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 55
-# CHECK-NEXT: Total uOps: 2
+# CHECK-NEXT: Total Cycles: 42
+# CHECK-NEXT: Total uOps: 4
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.04
-# CHECK-NEXT: IPC: 0.04
-# CHECK-NEXT: Block RThroughput: 10.0
+# CHECK-NEXT: uOps Per Cycle: 0.10
+# CHECK-NEXT: IPC: 0.05
+# CHECK-NEXT: Block RThroughput: 25.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -22,10 +22,10 @@ idiv %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 25 10.00 U idivl %eax
+# CHECK-NEXT: 2 14 25.00 U idivl %eax
# CHECK: Dynamic Dispatch Stall Cycles:
-# CHECK-NEXT: RAT - Register unavailable: 27 (49.1%)
+# CHECK-NEXT: RAT - Register unavailable: 16 (38.1%)
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
# CHECK-NEXT: LQ - Load queue full: 0
@@ -34,37 +34,59 @@ idiv %eax
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 53 (96.4%)
-# CHECK-NEXT: 1, 2 (3.6%)
+# CHECK-NEXT: 0, 40 (95.2%)
+# CHECK-NEXT: 2, 2 (4.8%)
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 6
# CHECK-NEXT: Max number of mappings used: 3
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 6
+# CHECK-NEXT: Max number of mappings used: 3
+
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: 10.00 - 1.00 - - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - 25.00 - 1.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: 10.00 - 1.00 - - - - - idivl %eax
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - 25.00 - 1.00 - - - - - - - - - - - - - idivl %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 01234
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 01
-# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeER . . . . . . idivl %eax
-# CHECK-NEXT: [1,0] . . . . . . DeeeeeeeeeeeeeeeeeeeeeeeeeER idivl %eax
+# CHECK: [0,0] DeeeeeeeeeeeeeeER . . . . .. idivl %eax
+# CHECK-NEXT: [1,0] . . . .D=========eeeeeeeeeeeeeeER idivl %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -73,4 +95,4 @@ idiv %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 1.0 1.0 0.0 idivl %eax
+# CHECK-NEXT: 0. 2 5.5 5.5 0.0 idivl %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-4.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-4.s Sat Oct 27 13:46:30 2018
@@ -1,17 +1,17 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=22 -dispatch-stats -register-file-stats -resource-pressure=false -timeline -timeline-max-iterations=3 < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=22 -dispatch-stats -register-file-stats -resource-pressure=false -timeline -timeline-max-iterations=3 < %s | FileCheck %s
idiv %eax
# CHECK: Iterations: 22
# CHECK-NEXT: Instructions: 22
-# CHECK-NEXT: Total Cycles: 553
-# CHECK-NEXT: Total uOps: 22
+# CHECK-NEXT: Total Cycles: 542
+# CHECK-NEXT: Total uOps: 44
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.04
+# CHECK-NEXT: uOps Per Cycle: 0.08
# CHECK-NEXT: IPC: 0.04
-# CHECK-NEXT: Block RThroughput: 10.0
+# CHECK-NEXT: Block RThroughput: 25.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -22,7 +22,7 @@ idiv %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 25 10.00 U idivl %eax
+# CHECK-NEXT: 2 14 25.00 U idivl %eax
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
@@ -34,21 +34,30 @@ idiv %eax
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 547 (98.9%)
-# CHECK-NEXT: 2, 1 (0.2%)
-# CHECK-NEXT: 4, 5 (0.9%)
+# CHECK-NEXT: 0, 531 (98.0%)
+# CHECK-NEXT: 4, 11 (2.0%)
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 66
# CHECK-NEXT: Max number of mappings used: 66
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 66
+# CHECK-NEXT: Max number of mappings used: 66
+
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 0123456789 01234567
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456
-# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeER . . . . . . . . . . . idivl %eax
-# CHECK-NEXT: [1,0] D=========================eeeeeeeeeeeeeeeeeeeeeeeeeER . . . . . . idivl %eax
-# CHECK-NEXT: [2,0] D==================================================eeeeeeeeeeeeeeeeeeeeeeeeeER idivl %eax
+# CHECK: [0,0] DeeeeeeeeeeeeeeER . . . . . . . . . .. idivl %eax
+# CHECK-NEXT: [1,0] D=========================eeeeeeeeeeeeeeER . . . . .. idivl %eax
+# CHECK-NEXT: [2,0] .D=================================================eeeeeeeeeeeeeeER idivl %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -57,4 +66,4 @@ idiv %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 26.0 0.3 0.0 idivl %eax
+# CHECK-NEXT: 0. 3 25.7 7.7 0.0 idivl %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -iterations=1 -resource-pressure=false -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -iterations=1 -resource-pressure=false -instruction-info=false -dispatch-stats -register-file-stats -timeline < %s | FileCheck %s
vdivps %ymm0, %ymm0, %ymm1
vaddps %ymm0, %ymm0, %ymm2
@@ -37,13 +37,13 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 33
-# CHECK-NEXT: Total Cycles: 37
-# CHECK-NEXT: Total uOps: 35
+# CHECK-NEXT: Total Cycles: 70
+# CHECK-NEXT: Total uOps: 66
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.95
-# CHECK-NEXT: IPC: 0.89
-# CHECK-NEXT: Block RThroughput: 32.0
+# CHECK-NEXT: uOps Per Cycle: 0.94
+# CHECK-NEXT: IPC: 0.47
+# CHECK-NEXT: Block RThroughput: 64.0
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
@@ -55,51 +55,61 @@
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 28 (75.7%)
-# CHECK-NEXT: 3, 1 (2.7%)
-# CHECK-NEXT: 4, 8 (21.6%)
+# CHECK-NEXT: 0, 53 (75.7%)
+# CHECK-NEXT: 2, 1 (1.4%)
+# CHECK-NEXT: 4, 16 (22.9%)
# CHECK: Register File statistics:
-# CHECK-NEXT: Total number of mappings created: 33
-# CHECK-NEXT: Max number of mappings used: 33
+# CHECK-NEXT: Total number of mappings created: 66
+# CHECK-NEXT: Max number of mappings used: 54
+
+# CHECK: * Register File #1 -- PdFpuPRF:
+# CHECK-NEXT: Number of physical registers: 160
+# CHECK-NEXT: Total number of mappings created: 66
+# CHECK-NEXT: Max number of mappings used: 54
+
+# CHECK: * Register File #2 -- PdIntegerPRF:
+# CHECK-NEXT: Number of physical registers: 96
+# CHECK-NEXT: Total number of mappings created: 0
+# CHECK-NEXT: Max number of mappings used: 0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456
-# CHECK-NEXT: Index 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789
-# CHECK: [0,0] DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeER .. vdivps %ymm0, %ymm0, %ymm1
-# CHECK-NEXT: [0,1] DeeeE--------------------------R .. vaddps %ymm0, %ymm0, %ymm2
-# CHECK-NEXT: [0,2] .DeeeE-------------------------R .. vaddps %ymm0, %ymm0, %ymm3
-# CHECK-NEXT: [0,3] .D=eeeE------------------------R .. vaddps %ymm0, %ymm0, %ymm4
-# CHECK-NEXT: [0,4] .D==eeeE-----------------------R .. vaddps %ymm0, %ymm0, %ymm5
-# CHECK-NEXT: [0,5] .D===eeeE----------------------R .. vaddps %ymm0, %ymm0, %ymm6
-# CHECK-NEXT: [0,6] . D===eeeE---------------------R .. vaddps %ymm0, %ymm0, %ymm7
-# CHECK-NEXT: [0,7] . D=====eeeE-------------------R .. vaddps %ymm0, %ymm0, %ymm8
-# CHECK-NEXT: [0,8] . D======eeeE------------------R .. vaddps %ymm0, %ymm0, %ymm9
-# CHECK-NEXT: [0,9] . D=======eeeE-----------------R .. vaddps %ymm0, %ymm0, %ymm10
-# CHECK-NEXT: [0,10] . D=======eeeE----------------R .. vaddps %ymm0, %ymm0, %ymm11
-# CHECK-NEXT: [0,11] . D========eeeE---------------R .. vaddps %ymm0, %ymm0, %ymm12
-# CHECK-NEXT: [0,12] . D=========eeeE--------------R .. vaddps %ymm0, %ymm0, %ymm13
-# CHECK-NEXT: [0,13] . D===========eeeE------------R .. vaddps %ymm0, %ymm0, %ymm14
-# CHECK-NEXT: [0,14] . D===========eeeE-----------R .. vaddps %ymm0, %ymm0, %ymm15
-# CHECK-NEXT: [0,15] . D==eeeE--------------------R .. vaddps %ymm2, %ymm0, %ymm0
-# CHECK-NEXT: [0,16] . D=========eeeE-------------R .. vaddps %ymm2, %ymm0, %ymm3
-# CHECK-NEXT: [0,17] . D============eeeE----------R .. vaddps %ymm2, %ymm0, %ymm4
-# CHECK-NEXT: [0,18] . D============eeeE---------R .. vaddps %ymm2, %ymm0, %ymm5
-# CHECK-NEXT: [0,19] . D=============eeeE--------R .. vaddps %ymm2, %ymm0, %ymm6
-# CHECK-NEXT: [0,20] . D==============eeeE-------R .. vaddps %ymm2, %ymm0, %ymm7
-# CHECK-NEXT: [0,21] . D===============eeeE------R .. vaddps %ymm2, %ymm0, %ymm8
-# CHECK-NEXT: [0,22] . .D===============eeeE-----R .. vaddps %ymm2, %ymm0, %ymm9
-# CHECK-NEXT: [0,23] . .D================eeeE----R .. vaddps %ymm2, %ymm0, %ymm10
-# CHECK-NEXT: [0,24] . .D=================eeeE---R .. vaddps %ymm2, %ymm0, %ymm11
-# CHECK-NEXT: [0,25] . .D==================eeeE--R .. vaddps %ymm2, %ymm0, %ymm12
-# CHECK-NEXT: [0,26] . . D==================eeeE-R .. vaddps %ymm2, %ymm0, %ymm13
-# CHECK-NEXT: [0,27] . . D===================eeeER .. vaddps %ymm2, %ymm0, %ymm14
-# CHECK-NEXT: [0,28] . . D====================eeeER .. vaddps %ymm2, %ymm0, %ymm15
-# CHECK-NEXT: [0,29] . . D=====================eeeER .. vaddps %ymm3, %ymm0, %ymm2
-# CHECK-NEXT: [0,30] . . D=====================eeeER.. vaddps %ymm3, %ymm0, %ymm4
-# CHECK-NEXT: [0,31] . . D======================eeeER. vaddps %ymm3, %ymm0, %ymm5
-# CHECK-NEXT: [0,32] . . D=======================eeeER vaddps %ymm3, %ymm0, %ymm6
+# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . . . . . vdivps %ymm0, %ymm0, %ymm1
+# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm2
+# CHECK-NEXT: [0,2] .D=eeeeeE--R . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm3
+# CHECK-NEXT: [0,3] .D===eeeeeER . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm4
+# CHECK-NEXT: [0,4] . D====eeeeeER . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm5
+# CHECK-NEXT: [0,5] . D======eeeeeER . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm6
+# CHECK-NEXT: [0,6] . D=======eeeeeER . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm7
+# CHECK-NEXT: [0,7] . D===========eeeeeER . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm8
+# CHECK-NEXT: [0,8] . D============eeeeeER . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm9
+# CHECK-NEXT: [0,9] . D==============eeeeeER . . . . . . . . . vaddps %ymm0, %ymm0, %ymm10
+# CHECK-NEXT: [0,10] . D===============eeeeeER . . . . . . . . . vaddps %ymm0, %ymm0, %ymm11
+# CHECK-NEXT: [0,11] . D=================eeeeeER. . . . . . . . . vaddps %ymm0, %ymm0, %ymm12
+# CHECK-NEXT: [0,12] . .D==================eeeeeER . . . . . . . . vaddps %ymm0, %ymm0, %ymm13
+# CHECK-NEXT: [0,13] . .D======================eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm14
+# CHECK-NEXT: [0,14] . . D=======================eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm15
+# CHECK-NEXT: [0,15] . . D=====eeeeeE------------------R . . . . . . . vaddps %ymm2, %ymm0, %ymm0
+# CHECK-NEXT: [0,16] . . D==================eeeeeE----R . . . . . . . vaddps %ymm2, %ymm0, %ymm3
+# CHECK-NEXT: [0,17] . . D========================eeeeeER. . . . . . . vaddps %ymm2, %ymm0, %ymm4
+# CHECK-NEXT: [0,18] . . D=========================eeeeeER . . . . . . vaddps %ymm2, %ymm0, %ymm5
+# CHECK-NEXT: [0,19] . . D===========================eeeeeER . . . . . . vaddps %ymm2, %ymm0, %ymm6
+# CHECK-NEXT: [0,20] . . D============================eeeeeER . . . . . vaddps %ymm2, %ymm0, %ymm7
+# CHECK-NEXT: [0,21] . . D==============================eeeeeER . . . . . vaddps %ymm2, %ymm0, %ymm8
+# CHECK-NEXT: [0,22] . . .D===============================eeeeeER. . . . . vaddps %ymm2, %ymm0, %ymm9
+# CHECK-NEXT: [0,23] . . .D=================================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm10
+# CHECK-NEXT: [0,24] . . . D==================================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm11
+# CHECK-NEXT: [0,25] . . . D====================================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm12
+# CHECK-NEXT: [0,26] . . . D=====================================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm13
+# CHECK-NEXT: [0,27] . . . D=======================================eeeeeER. . . vaddps %ymm2, %ymm0, %ymm14
+# CHECK-NEXT: [0,28] . . . D========================================eeeeeER . . vaddps %ymm2, %ymm0, %ymm15
+# CHECK-NEXT: [0,29] . . . D==========================================eeeeeER . . vaddps %ymm3, %ymm0, %ymm2
+# CHECK-NEXT: [0,30] . . . D===========================================eeeeeER . vaddps %ymm3, %ymm0, %ymm4
+# CHECK-NEXT: [0,31] . . . D=============================================eeeeeER . vaddps %ymm3, %ymm0, %ymm5
+# CHECK-NEXT: [0,32] . . . .D==============================================eeeeeER vaddps %ymm3, %ymm0, %ymm6
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -109,35 +119,35 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vdivps %ymm0, %ymm0, %ymm1
-# CHECK-NEXT: 1. 1 1.0 1.0 26.0 vaddps %ymm0, %ymm0, %ymm2
-# CHECK-NEXT: 2. 1 1.0 1.0 25.0 vaddps %ymm0, %ymm0, %ymm3
-# CHECK-NEXT: 3. 1 2.0 2.0 24.0 vaddps %ymm0, %ymm0, %ymm4
-# CHECK-NEXT: 4. 1 3.0 3.0 23.0 vaddps %ymm0, %ymm0, %ymm5
-# CHECK-NEXT: 5. 1 4.0 4.0 22.0 vaddps %ymm0, %ymm0, %ymm6
-# CHECK-NEXT: 6. 1 4.0 4.0 21.0 vaddps %ymm0, %ymm0, %ymm7
-# CHECK-NEXT: 7. 1 6.0 6.0 19.0 vaddps %ymm0, %ymm0, %ymm8
-# CHECK-NEXT: 8. 1 7.0 7.0 18.0 vaddps %ymm0, %ymm0, %ymm9
-# CHECK-NEXT: 9. 1 8.0 8.0 17.0 vaddps %ymm0, %ymm0, %ymm10
-# CHECK-NEXT: 10. 1 8.0 8.0 16.0 vaddps %ymm0, %ymm0, %ymm11
-# CHECK-NEXT: 11. 1 9.0 9.0 15.0 vaddps %ymm0, %ymm0, %ymm12
-# CHECK-NEXT: 12. 1 10.0 10.0 14.0 vaddps %ymm0, %ymm0, %ymm13
-# CHECK-NEXT: 13. 1 12.0 12.0 12.0 vaddps %ymm0, %ymm0, %ymm14
-# CHECK-NEXT: 14. 1 12.0 12.0 11.0 vaddps %ymm0, %ymm0, %ymm15
-# CHECK-NEXT: 15. 1 3.0 3.0 20.0 vaddps %ymm2, %ymm0, %ymm0
-# CHECK-NEXT: 16. 1 10.0 4.0 13.0 vaddps %ymm2, %ymm0, %ymm3
-# CHECK-NEXT: 17. 1 13.0 7.0 10.0 vaddps %ymm2, %ymm0, %ymm4
-# CHECK-NEXT: 18. 1 13.0 8.0 9.0 vaddps %ymm2, %ymm0, %ymm5
-# CHECK-NEXT: 19. 1 14.0 9.0 8.0 vaddps %ymm2, %ymm0, %ymm6
-# CHECK-NEXT: 20. 1 15.0 10.0 7.0 vaddps %ymm2, %ymm0, %ymm7
-# CHECK-NEXT: 21. 1 16.0 11.0 6.0 vaddps %ymm2, %ymm0, %ymm8
-# CHECK-NEXT: 22. 1 16.0 12.0 5.0 vaddps %ymm2, %ymm0, %ymm9
-# CHECK-NEXT: 23. 1 17.0 13.0 4.0 vaddps %ymm2, %ymm0, %ymm10
-# CHECK-NEXT: 24. 1 18.0 14.0 3.0 vaddps %ymm2, %ymm0, %ymm11
-# CHECK-NEXT: 25. 1 19.0 15.0 2.0 vaddps %ymm2, %ymm0, %ymm12
-# CHECK-NEXT: 26. 1 19.0 16.0 1.0 vaddps %ymm2, %ymm0, %ymm13
-# CHECK-NEXT: 27. 1 20.0 17.0 0.0 vaddps %ymm2, %ymm0, %ymm14
-# CHECK-NEXT: 28. 1 21.0 18.0 0.0 vaddps %ymm2, %ymm0, %ymm15
-# CHECK-NEXT: 29. 1 22.0 12.0 0.0 vaddps %ymm3, %ymm0, %ymm2
-# CHECK-NEXT: 30. 1 22.0 13.0 0.0 vaddps %ymm3, %ymm0, %ymm4
-# CHECK-NEXT: 31. 1 23.0 14.0 0.0 vaddps %ymm3, %ymm0, %ymm5
-# CHECK-NEXT: 32. 1 24.0 15.0 0.0 vaddps %ymm3, %ymm0, %ymm6
+# CHECK-NEXT: 1. 1 1.0 1.0 4.0 vaddps %ymm0, %ymm0, %ymm2
+# CHECK-NEXT: 2. 1 2.0 2.0 2.0 vaddps %ymm0, %ymm0, %ymm3
+# CHECK-NEXT: 3. 1 4.0 4.0 0.0 vaddps %ymm0, %ymm0, %ymm4
+# CHECK-NEXT: 4. 1 5.0 5.0 0.0 vaddps %ymm0, %ymm0, %ymm5
+# CHECK-NEXT: 5. 1 7.0 7.0 0.0 vaddps %ymm0, %ymm0, %ymm6
+# CHECK-NEXT: 6. 1 8.0 8.0 0.0 vaddps %ymm0, %ymm0, %ymm7
+# CHECK-NEXT: 7. 1 12.0 12.0 0.0 vaddps %ymm0, %ymm0, %ymm8
+# CHECK-NEXT: 8. 1 13.0 13.0 0.0 vaddps %ymm0, %ymm0, %ymm9
+# CHECK-NEXT: 9. 1 15.0 15.0 0.0 vaddps %ymm0, %ymm0, %ymm10
+# CHECK-NEXT: 10. 1 16.0 16.0 0.0 vaddps %ymm0, %ymm0, %ymm11
+# CHECK-NEXT: 11. 1 18.0 18.0 0.0 vaddps %ymm0, %ymm0, %ymm12
+# CHECK-NEXT: 12. 1 19.0 19.0 0.0 vaddps %ymm0, %ymm0, %ymm13
+# CHECK-NEXT: 13. 1 23.0 23.0 0.0 vaddps %ymm0, %ymm0, %ymm14
+# CHECK-NEXT: 14. 1 24.0 24.0 0.0 vaddps %ymm0, %ymm0, %ymm15
+# CHECK-NEXT: 15. 1 6.0 6.0 18.0 vaddps %ymm2, %ymm0, %ymm0
+# CHECK-NEXT: 16. 1 19.0 9.0 4.0 vaddps %ymm2, %ymm0, %ymm3
+# CHECK-NEXT: 17. 1 25.0 15.0 0.0 vaddps %ymm2, %ymm0, %ymm4
+# CHECK-NEXT: 18. 1 26.0 17.0 0.0 vaddps %ymm2, %ymm0, %ymm5
+# CHECK-NEXT: 19. 1 28.0 19.0 0.0 vaddps %ymm2, %ymm0, %ymm6
+# CHECK-NEXT: 20. 1 29.0 21.0 0.0 vaddps %ymm2, %ymm0, %ymm7
+# CHECK-NEXT: 21. 1 31.0 23.0 0.0 vaddps %ymm2, %ymm0, %ymm8
+# CHECK-NEXT: 22. 1 32.0 25.0 0.0 vaddps %ymm2, %ymm0, %ymm9
+# CHECK-NEXT: 23. 1 34.0 27.0 0.0 vaddps %ymm2, %ymm0, %ymm10
+# CHECK-NEXT: 24. 1 35.0 29.0 0.0 vaddps %ymm2, %ymm0, %ymm11
+# CHECK-NEXT: 25. 1 37.0 31.0 0.0 vaddps %ymm2, %ymm0, %ymm12
+# CHECK-NEXT: 26. 1 38.0 33.0 0.0 vaddps %ymm2, %ymm0, %ymm13
+# CHECK-NEXT: 27. 1 40.0 35.0 0.0 vaddps %ymm2, %ymm0, %ymm14
+# CHECK-NEXT: 28. 1 41.0 37.0 0.0 vaddps %ymm2, %ymm0, %ymm15
+# CHECK-NEXT: 29. 1 43.0 25.0 0.0 vaddps %ymm3, %ymm0, %ymm2
+# CHECK-NEXT: 30. 1 44.0 27.0 0.0 vaddps %ymm3, %ymm0, %ymm4
+# CHECK-NEXT: 31. 1 46.0 29.0 0.0 vaddps %ymm3, %ymm0, %ymm5
+# CHECK-NEXT: 32. 1 47.0 31.0 0.0 vaddps %ymm3, %ymm0, %ymm6
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
femms
@@ -87,122 +87,134 @@ pswapd (%rax), %mm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 31 31 10.33 * * U femms
-# CHECK-NEXT: 1 3 1.00 pavgusb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pavgusb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pf2id %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pf2id (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pf2iw %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pf2iw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfacc %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfacc (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfadd %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfadd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfcmpeq %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfcmpeq (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfcmpge %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfcmpge (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfcmpgt %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfcmpgt (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfmax %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfmax (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfmin %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfmin (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfmul %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfmul (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfnacc %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfnacc (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfpnacc %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfpnacc (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfrcp %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfrcp (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfrcpit1 %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfrcpit1 (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfrcpit2 %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfrcpit2 (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfrsqit1 %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfrsqit1 (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfrsqrt %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfrsqrt (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfsub %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfsub (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pfsubr %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pfsubr (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pi2fd %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pi2fd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pi2fw %mm0, %mm2
-# CHECK-NEXT: 2 9 1.00 * pi2fw (%rax), %mm2
-# CHECK-NEXT: 1 5 1.00 pmulhrw %mm0, %mm2
-# CHECK-NEXT: 2 10 1.00 * pmulhrw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 * * U femms
+# CHECK-NEXT: 1 2 0.50 pavgusb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pavgusb (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pf2id %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pf2id (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pf2iw %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pf2iw (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfacc %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfacc (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfadd %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfadd (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfcmpeq %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfcmpeq (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfcmpge %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfcmpge (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfcmpgt %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfcmpgt (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfmax %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfmax (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfmin %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfmin (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfmul %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfmul (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfnacc %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfnacc (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfpnacc %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfpnacc (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfrcp %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfrcp (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfrcpit1 %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfrcpit1 (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfrcpit2 %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfrcpit2 (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfrsqit1 %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfrsqit1 (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfrsqrt %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfrsqrt (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfsub %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfsub (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 pfsubr %mm0, %mm2
+# CHECK-NEXT: 1 10 1.00 * pfsubr (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pi2fd %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pi2fd (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pi2fw %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pi2fw (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pmulhrw %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pmulhrw (%rax), %mm2
# CHECK-NEXT: 1 5 0.50 * * prefetch (%rax)
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
-# CHECK-NEXT: 1 1 1.00 pswapd %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * pswapd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pswapd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pswapd (%rax), %mm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 12.33 54.33 - 12.33 13.00 13.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 13.00 13.00 - - - - - - 17.50 17.50 2.00 2.00 2.00 8.00 38.50 10.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 10.33 10.33 - 10.33 - - femms
-# CHECK-NEXT: - - - 1.00 - - - - pavgusb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pavgusb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pf2id %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pf2id (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pf2iw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pf2iw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfacc %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfacc (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfadd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfadd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfcmpeq %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfcmpeq (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfcmpge %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfcmpge (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfcmpgt %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfcmpgt (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfmax %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfmax (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfmin %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfmin (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfmul %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfmul (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfnacc %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfnacc (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfpnacc %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfpnacc (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfrcp %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfrcp (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfrcpit1 %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfrcpit1 (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfrcpit2 %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfrcpit2 (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfrsqit1 %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfrsqit1 (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfrsqrt %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfrsqrt (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfsub %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfsub (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pfsubr %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pfsubr (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pi2fd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pi2fd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pi2fw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pi2fw (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - pmulhrw %mm0, %mm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmulhrw (%rax), %mm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 prefetch (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 prefetchw (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - pswapd %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 pswapd (%rax), %mm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - femms
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pavgusb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pavgusb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - pf2id %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - pf2id (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - pf2iw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - pf2iw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfacc %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfacc (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfadd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfadd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpeq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpeq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpge %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpge (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpgt %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfcmpgt (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmax %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmax (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmin %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmin (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmul %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfmul (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfnacc %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfnacc (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfpnacc %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfpnacc (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcp %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcp (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcpit1 %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcpit1 (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcpit2 %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrcpit2 (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrsqit1 %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrsqit1 (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrsqrt %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfrsqrt (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfsub %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfsub (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfsubr %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - pfsubr (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - pi2fd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - pi2fd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - pi2fw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - pi2fw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - pmulhrw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - pmulhrw (%rax), %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - prefetch (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - prefetchw (%rax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pswapd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pswapd (%rax), %mm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
adcx %ebx, %ecx
adcx (%rbx), %ecx
@@ -20,36 +20,48 @@ adox (%rbx), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 2 0.67 adcxl %ebx, %ecx
-# CHECK-NEXT: 3 7 0.67 * adcxl (%rbx), %ecx
-# CHECK-NEXT: 2 2 0.67 adcxq %rbx, %rcx
-# CHECK-NEXT: 3 7 0.67 * adcxq (%rbx), %rcx
-# CHECK-NEXT: 2 2 0.67 adoxl %ebx, %ecx
-# CHECK-NEXT: 3 7 0.67 * adoxl (%rbx), %ecx
-# CHECK-NEXT: 2 2 0.67 adoxq %rbx, %rcx
-# CHECK-NEXT: 3 7 0.67 * adoxq (%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 adcxl %ebx, %ecx
+# CHECK-NEXT: 1 5 1.00 * adcxl (%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 adcxq %rbx, %rcx
+# CHECK-NEXT: 1 5 1.00 * adcxq (%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 adoxl %ebx, %ecx
+# CHECK-NEXT: 1 5 1.00 * adoxl (%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 adoxq %rbx, %rcx
+# CHECK-NEXT: 1 5 1.00 * adoxq (%rbx), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 6.67 2.67 - 6.67 2.00 2.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 2.00 2.00 - - - 8.00 8.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 - - adcxl %ebx, %ecx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 adcxl (%rbx), %ecx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 - - adcxq %rbx, %rcx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 adcxq (%rbx), %rcx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 - - adoxl %ebx, %ecx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 adoxl (%rbx), %ecx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 - - adoxq %rbx, %rcx
-# CHECK-NEXT: - - 0.83 0.33 - 0.83 0.50 0.50 adoxq (%rbx), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - adcxl %ebx, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - adcxl (%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - adcxq %rbx, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - adcxq (%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - adoxl %ebx, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - adoxl (%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - adoxq %rbx, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - adoxq (%rbx), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
aesdec %xmm0, %xmm2
aesdec (%rax), %xmm2
@@ -28,44 +28,56 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 7 1.00 aesdec %xmm0, %xmm2
-# CHECK-NEXT: 3 13 1.00 * aesdec (%rax), %xmm2
-# CHECK-NEXT: 2 7 1.00 aesdeclast %xmm0, %xmm2
-# CHECK-NEXT: 3 13 1.00 * aesdeclast (%rax), %xmm2
-# CHECK-NEXT: 2 7 1.00 aesenc %xmm0, %xmm2
-# CHECK-NEXT: 3 13 1.00 * aesenc (%rax), %xmm2
-# CHECK-NEXT: 2 7 1.00 aesenclast %xmm0, %xmm2
-# CHECK-NEXT: 3 13 1.00 * aesenclast (%rax), %xmm2
-# CHECK-NEXT: 2 12 2.00 aesimc %xmm0, %xmm2
-# CHECK-NEXT: 3 18 2.00 * aesimc (%rax), %xmm2
-# CHECK-NEXT: 1 8 3.67 aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 2 9 1.00 aesdec %xmm0, %xmm2
+# CHECK-NEXT: 2 14 1.00 * aesdec (%rax), %xmm2
+# CHECK-NEXT: 2 9 1.00 aesdeclast %xmm0, %xmm2
+# CHECK-NEXT: 2 14 1.00 * aesdeclast (%rax), %xmm2
+# CHECK-NEXT: 2 9 1.00 aesenc %xmm0, %xmm2
+# CHECK-NEXT: 2 14 1.00 * aesenc (%rax), %xmm2
+# CHECK-NEXT: 2 9 1.00 aesenclast %xmm0, %xmm2
+# CHECK-NEXT: 2 14 1.00 * aesenclast (%rax), %xmm2
+# CHECK-NEXT: 1 5 1.00 aesimc %xmm0, %xmm2
+# CHECK-NEXT: 1 10 1.00 * aesimc (%rax), %xmm2
+# CHECK-NEXT: 1 5 1.00 aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: 1 10 1.00 * aeskeygenassist $22, (%rax), %xmm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 9.67 9.67 - 21.67 3.00 3.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - 12.00 - 12.00 - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - aesdec %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 aesdec (%rax), %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - aesdeclast %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 aesdeclast (%rax), %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - aesenc %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 aesenc (%rax), %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - aesenclast %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 aesenclast (%rax), %xmm2
-# CHECK-NEXT: - - - - - 2.00 - - aesimc %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 2.00 0.50 0.50 aesimc (%rax), %xmm2
-# CHECK-NEXT: - - 3.67 3.67 - 3.67 - - aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: - - 3.33 3.33 - 3.33 0.50 0.50 aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aesdec %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aesdec (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aesdeclast %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aesdeclast (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aesenc %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aesenc (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aesenclast %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aesenclast (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aesimc %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aesimc (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - aeskeygenassist $22, (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
vaddpd %xmm0, %xmm1, %xmm2
vaddpd (%rax), %xmm1, %xmm2
@@ -1030,1402 +1030,1414 @@ vzeroupper
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vaddsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 vaesdec %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 13 1.00 * vaesdec (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 vaesdeclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 13 1.00 * vaesdeclast (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 vaesenc %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 13 1.00 * vaesenc (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 vaesenclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 13 1.00 * vaesenclast (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 12 2.00 vaesimc %xmm0, %xmm2
-# CHECK-NEXT: 3 18 2.00 * vaesimc (%rax), %xmm2
-# CHECK-NEXT: 1 8 3.67 vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * vaeskeygenassist $22, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vandnpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vandnps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vandnps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vandnps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vandpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vandps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vblendpd $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vblendpd $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vblendpd $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 0.50 * vblendpd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vblendps $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vblendps $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vblendps $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 0.50 * vblendps $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 2 1.00 vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 3 9 1.00 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 2 1.00 vblendvps %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 3 9 1.00 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vbroadcastf128 (%rax), %ymm2
-# CHECK-NEXT: 1 7 0.50 * vbroadcastsd (%rax), %ymm2
-# CHECK-NEXT: 1 6 0.50 * vbroadcastss (%rax), %xmm2
-# CHECK-NEXT: 1 7 0.50 * vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcmpss $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vcomisd (%rax), %xmm1
-# CHECK-NEXT: 2 2 1.00 vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vcomiss (%rax), %xmm1
-# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %xmm2
-# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm0, %ymm2
-# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %ymm0, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %ymm2
-# CHECK-NEXT: 2 4 1.00 vcvtpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtpd2dqx (%rax), %xmm2
-# CHECK-NEXT: 2 4 1.00 vcvtpd2dq %ymm0, %xmm2
-# CHECK-NEXT: 3 11 1.00 * vcvtpd2dqy (%rax), %xmm2
-# CHECK-NEXT: 2 4 1.00 vcvtpd2ps %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtpd2psx (%rax), %xmm2
-# CHECK-NEXT: 2 4 1.00 vcvtpd2ps %ymm0, %xmm2
-# CHECK-NEXT: 3 11 1.00 * vcvtpd2psy (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvtps2dq %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtps2dq (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvtps2dq %ymm0, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax), %ymm2
-# CHECK-NEXT: 2 2 1.00 vcvtps2pd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vcvtps2pd (%rax), %xmm2
-# CHECK-NEXT: 2 2 1.00 vcvtps2pd %xmm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vcvtps2pd (%rax), %ymm2
-# CHECK-NEXT: 2 5 1.00 vcvtsd2si %xmm0, %ecx
-# CHECK-NEXT: 2 5 1.00 vcvtsd2si %xmm0, %rcx
-# CHECK-NEXT: 3 10 1.00 * vcvtsd2si (%rax), %ecx
-# CHECK-NEXT: 3 10 1.00 * vcvtsd2si (%rax), %rcx
-# CHECK-NEXT: 2 4 1.00 vcvtsd2ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtsd2ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.00 vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.00 vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 9 1.00 vaesdec %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.00 * vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.00 vaesdeclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.00 * vaesdeclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.00 vaesenc %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.00 * vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.00 vaesenclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.00 * vaesenclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vaesimc %xmm0, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaesimc (%rax), %xmm2
+# CHECK-NEXT: 1 5 1.00 vaeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vblendpd $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vblendpd $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vblendpd $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vblendps $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vblendps $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vblendps $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 2.00 vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 2.00 * vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 3.00 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 3.00 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 2.00 vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 2.00 * vblendvps %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 3.00 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 3.00 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 7 0.50 * vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT: 2 6 2.00 * vbroadcastsd (%rax), %ymm2
+# CHECK-NEXT: 1 7 0.50 * vbroadcastss (%rax), %xmm2
+# CHECK-NEXT: 2 6 2.00 * vbroadcastss (%rax), %ymm2
+# CHECK-NEXT: 1 2 1.00 vcmppd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vcmppd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vcmppd $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vcmppd $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vcmpps $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vcmpps $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vcmpps $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vcmpps $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vcmpsd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vcmpsd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vcmpss $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vcomisd (%rax), %xmm1
+# CHECK-NEXT: 2 1 1.00 vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vcomiss (%rax), %xmm1
+# CHECK-NEXT: 2 8 1.00 vcvtdq2pd %xmm0, %xmm2
+# CHECK-NEXT: 2 13 1.00 * vcvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvtdq2pd %xmm0, %ymm2
+# CHECK-NEXT: 5 13 2.00 * vcvtdq2pd (%rax), %ymm2
+# CHECK-NEXT: 1 4 1.00 vcvtdq2ps %xmm0, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vcvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: 2 4 2.00 vcvtdq2ps %ymm0, %ymm2
+# CHECK-NEXT: 2 9 2.00 * vcvtdq2ps (%rax), %ymm2
+# CHECK-NEXT: 2 8 1.00 vcvtpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 2 13 1.00 * vcvtpd2dqx (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvtpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 4 13 2.00 * vcvtpd2dqy (%rax), %xmm2
+# CHECK-NEXT: 2 8 1.00 vcvtpd2ps %xmm0, %xmm2
+# CHECK-NEXT: 2 13 1.00 * vcvtpd2psx (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvtpd2ps %ymm0, %xmm2
+# CHECK-NEXT: 4 13 2.00 * vcvtpd2psy (%rax), %xmm2
+# CHECK-NEXT: 1 4 1.00 vcvtps2dq %xmm0, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vcvtps2dq (%rax), %xmm2
+# CHECK-NEXT: 2 4 2.00 vcvtps2dq %ymm0, %ymm2
+# CHECK-NEXT: 2 9 2.00 * vcvtps2dq (%rax), %ymm2
+# CHECK-NEXT: 2 8 1.00 vcvtps2pd %xmm0, %xmm2
+# CHECK-NEXT: 2 13 1.00 * vcvtps2pd (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvtps2pd %xmm0, %ymm2
+# CHECK-NEXT: 5 13 2.00 * vcvtps2pd (%rax), %ymm2
+# CHECK-NEXT: 2 13 1.00 vcvtsd2si %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 vcvtsd2si %xmm0, %rcx
+# CHECK-NEXT: 2 18 1.00 * vcvtsd2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.00 * vcvtsd2si (%rax), %rcx
+# CHECK-NEXT: 1 4 1.00 vcvtsd2ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vcvtsd2ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 4 1.00 vcvtsi2sdl %ecx, %xmm0, %xmm2
# CHECK-NEXT: 2 4 1.00 vcvtsi2sdq %rcx, %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * vcvtsi2sdl (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * vcvtsi2sdq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 3 5 2.00 vcvtsi2ssl %ecx, %xmm0, %xmm2
-# CHECK-NEXT: 3 5 2.00 vcvtsi2ssq %rcx, %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtsi2ssl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvtsi2ssq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 vcvtss2sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vcvtss2sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 1.00 vcvtss2si %xmm0, %ecx
-# CHECK-NEXT: 2 5 1.00 vcvtss2si %xmm0, %rcx
-# CHECK-NEXT: 3 10 1.00 * vcvtss2si (%rax), %ecx
-# CHECK-NEXT: 3 10 1.00 * vcvtss2si (%rax), %rcx
-# CHECK-NEXT: 2 4 1.00 vcvttpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 3 10 1.00 * vcvttpd2dqx (%rax), %xmm2
-# CHECK-NEXT: 2 4 1.00 vcvttpd2dq %ymm0, %xmm2
-# CHECK-NEXT: 3 11 1.00 * vcvttpd2dqy (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvttps2dq (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvttps2dq %ymm0, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax), %ymm2
-# CHECK-NEXT: 2 5 1.00 vcvttsd2si %xmm0, %ecx
-# CHECK-NEXT: 2 5 1.00 vcvttsd2si %xmm0, %rcx
-# CHECK-NEXT: 3 10 1.00 * vcvttsd2si (%rax), %ecx
-# CHECK-NEXT: 3 10 1.00 * vcvttsd2si (%rax), %rcx
-# CHECK-NEXT: 2 5 1.00 vcvttss2si %xmm0, %ecx
-# CHECK-NEXT: 2 5 1.00 vcvttss2si %xmm0, %rcx
-# CHECK-NEXT: 3 10 1.00 * vcvttss2si (%rax), %ecx
-# CHECK-NEXT: 3 10 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 22 22.00 vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 28 22.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 45 44.00 vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 52 44.00 * vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 14 14.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 20 14.00 * vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 29 28.00 vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 36 28.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 22 22.00 vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 28 22.00 * vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 14.00 vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 20 14.00 * vdivss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 9 1.00 vdppd $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 15 1.00 * vdppd $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4 12 2.00 vdpps $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 5 18 2.00 * vdpps $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4 12 2.00 vdpps $22, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 5 19 2.00 * vdpps $22, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vextractf128 $1, %ymm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vextractf128 $1, %ymm0, (%rax)
-# CHECK-NEXT: 2 3 1.00 vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: 3 5 1.00 * vextractps $1, %xmm0, (%rax)
-# CHECK-NEXT: 3 5 2.00 vhaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 11 2.00 * vhaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 2.00 vhaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 12 2.00 * vhaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 5 2.00 vhaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 11 2.00 * vhaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 2.00 vhaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 12 2.00 * vhaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 5 2.00 vhsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 11 2.00 * vhsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 2.00 vhsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 12 2.00 * vhsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 5 2.00 vhsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 11 2.00 * vhsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 2.00 vhsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 12 2.00 * vhsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vinsertf128 $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 4 1.00 vcvtsi2ssl %ecx, %xmm0, %xmm2
+# CHECK-NEXT: 2 4 1.00 vcvtsi2ssq %rcx, %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.00 * vcvtsi2ssl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.00 * vcvtsi2ssq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1 4 1.00 vcvtss2sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vcvtss2sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 13 1.00 vcvtss2si %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 vcvtss2si %xmm0, %rcx
+# CHECK-NEXT: 2 18 1.00 * vcvtss2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.00 * vcvtss2si (%rax), %rcx
+# CHECK-NEXT: 2 8 1.00 vcvttpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 2 13 1.00 * vcvttpd2dqx (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvttpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 4 13 2.00 * vcvttpd2dqy (%rax), %xmm2
+# CHECK-NEXT: 1 4 1.00 vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vcvttps2dq (%rax), %xmm2
+# CHECK-NEXT: 2 4 2.00 vcvttps2dq %ymm0, %ymm2
+# CHECK-NEXT: 2 9 2.00 * vcvttps2dq (%rax), %ymm2
+# CHECK-NEXT: 2 13 1.00 vcvttsd2si %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 vcvttsd2si %xmm0, %rcx
+# CHECK-NEXT: 2 18 1.00 * vcvttsd2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.00 * vcvttsd2si (%rax), %rcx
+# CHECK-NEXT: 2 13 1.00 vcvttss2si %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 vcvttss2si %xmm0, %rcx
+# CHECK-NEXT: 2 18 1.00 * vcvttss2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.00 * vcvttss2si (%rax), %rcx
+# CHECK-NEXT: 1 9 9.50 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 9.50 * vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 19.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 14 19.00 * vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 9.50 vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 9.50 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 19.00 vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 14 19.00 * vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 9.50 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 9.50 * vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 9.50 vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 9.50 * vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 15 15 1.50 vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 17 20 1.50 * vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 17 25 1.50 vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 18 30 1.50 * vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 25 27 3.00 vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 29 32 3.00 * vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vextractf128 $1, %ymm0, %xmm2
+# CHECK-NEXT: 2 7 0.50 * vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: 2 13 1.00 vextractps $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 * vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: 3 11 1.00 vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 1.00 * vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 2.00 vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 2.00 * vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 1.00 vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 1.00 * vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 2.00 vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 2.00 * vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 1.00 vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 1.00 * vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 2.00 vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 2.00 * vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 1.00 vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 1.00 * vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 2.00 vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 2.00 * vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 2 0.50 vinsertf128 $1, %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 7 0.50 * vinsertf128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vinsertps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
-# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 4 5 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 1 2 0.50 vinsertps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vinsertps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vlddqu (%rax), %xmm2
+# CHECK-NEXT: 2 5 0.50 * vlddqu (%rax), %ymm2
+# CHECK-NEXT: 1 5 0.50 * * U vldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 3 9 1.00 * vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 3 5 1.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 3 5 1.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 3 8 1.00 * vmaskmovps (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 3 9 1.00 * vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 3 5 1.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 3 5 1.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vminss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovapd %xmm0, %xmm2
+# CHECK-NEXT: 1 6 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 18 6 2.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 34 6 2.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 1 6 1.00 * vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 18 6 2.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 34 6 2.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 1 2 1.00 vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.00 * vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.50 vmovapd %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovapd %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovapd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovapd %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovapd %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovapd (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovapd (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovapd %ymm0, %ymm2
+# CHECK-NEXT: 4 1 1.00 * vmovapd %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovapd (%rax), %ymm2
+# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovaps (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovaps %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovaps %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovaps (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovd %eax, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vmovd (%rax), %xmm2
-# CHECK-NEXT: 1 2 1.00 vmovd %xmm0, %ecx
-# CHECK-NEXT: 1 1 1.00 * vmovd %xmm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 vmovddup %xmm0, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vmovddup (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovddup %ymm0, %ymm2
-# CHECK-NEXT: 1 7 0.50 * vmovddup (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.33 vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovaps (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovaps %ymm0, %ymm2
+# CHECK-NEXT: 4 1 1.00 * vmovaps %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovaps (%rax), %ymm2
+# CHECK-NEXT: 2 10 0.50 vmovd %eax, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovd (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.00 vmovd %xmm0, %ecx
+# CHECK-NEXT: 1 2 1.00 * vmovd %xmm0, (%rax)
+# CHECK-NEXT: 1 2 0.50 vmovddup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vmovddup (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovddup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vmovddup (%rax), %ymm2
+# CHECK-NEXT: 1 2 0.50 vmovdqa %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovdqa %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovdqa (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vmovdqa %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovdqa %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovdqa (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.33 vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovdqa (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovdqa %ymm0, %ymm2
+# CHECK-NEXT: 4 1 1.00 * vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovdqa (%rax), %ymm2
+# CHECK-NEXT: 1 2 0.50 vmovdqu %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovdqu %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovdqu (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vmovdqu %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovdqu %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovdqu (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovhlps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovlhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovhpd %xmm0, (%rax)
-# CHECK-NEXT: 2 7 1.00 * vmovhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovhps %xmm0, (%rax)
-# CHECK-NEXT: 2 7 1.00 * vmovhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: 2 7 1.00 * vmovlpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovlps %xmm0, (%rax)
-# CHECK-NEXT: 2 7 1.00 * vmovlps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx
-# CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx
-# CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx
-# CHECK-NEXT: 1 2 1.00 vmovmskps %ymm0, %ecx
-# CHECK-NEXT: 1 1 1.00 * vmovntdq %xmm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 * vmovntdq %ymm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovntdqa (%rax), %xmm2
-# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovntpd %xmm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 * vmovntpd %ymm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 * vmovntps %xmm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 * vmovntps %ymm0, (%rax)
-# CHECK-NEXT: 1 1 0.33 vmovq %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovq %rax, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vmovq (%rax), %xmm2
-# CHECK-NEXT: 1 2 1.00 vmovq %xmm0, %rcx
-# CHECK-NEXT: 1 1 1.00 * vmovq %xmm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 vmovsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovsd %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovsd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovshdup %xmm0, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vmovshdup (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovshdup %ymm0, %ymm2
-# CHECK-NEXT: 1 7 0.50 * vmovshdup (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovsldup %xmm0, %xmm2
-# CHECK-NEXT: 1 6 0.50 * vmovsldup (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovsldup %ymm0, %ymm2
-# CHECK-NEXT: 1 7 0.50 * vmovsldup (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovss %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovss (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovupd %xmm0, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovdqu (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovdqu %ymm0, %ymm2
+# CHECK-NEXT: 8 1 1.00 * vmovdqu %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovdqu (%rax), %ymm2
+# CHECK-NEXT: 1 2 0.50 vmovhlps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vmovlhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 * vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: 1 7 0.50 * vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 * vmovhps %xmm0, (%rax)
+# CHECK-NEXT: 1 7 0.50 * vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 * vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: 1 7 0.50 * vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 * vmovlps %xmm0, (%rax)
+# CHECK-NEXT: 1 7 0.50 * vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 10 1.00 vmovmskpd %xmm0, %ecx
+# CHECK-NEXT: 2 10 1.00 vmovmskpd %ymm0, %ecx
+# CHECK-NEXT: 2 10 1.00 vmovmskps %xmm0, %ecx
+# CHECK-NEXT: 2 10 1.00 vmovmskps %ymm0, %ecx
+# CHECK-NEXT: 1 2 1.00 * vmovntdq %xmm0, (%rax)
+# CHECK-NEXT: 4 2 2.00 * vmovntdq %ymm0, (%rax)
+# CHECK-NEXT: 1 5 0.50 * vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovntdqa (%rax), %ymm2
+# CHECK-NEXT: 1 3 1.00 * vmovntpd %xmm0, (%rax)
+# CHECK-NEXT: 4 3 2.00 * vmovntpd %ymm0, (%rax)
+# CHECK-NEXT: 1 3 1.00 * vmovntps %xmm0, (%rax)
+# CHECK-NEXT: 4 3 2.00 * vmovntps %ymm0, (%rax)
+# CHECK-NEXT: 1 2 0.50 vmovq %xmm0, %xmm2
+# CHECK-NEXT: 2 10 0.50 vmovq %rax, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovq (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.00 vmovq %xmm0, %rcx
+# CHECK-NEXT: 1 2 1.00 * vmovq %xmm0, (%rax)
+# CHECK-NEXT: 1 2 0.50 vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 * vmovsd %xmm0, (%rax)
+# CHECK-NEXT: 1 5 0.50 * vmovsd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vmovshdup (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vmovshdup (%rax), %ymm2
+# CHECK-NEXT: 1 2 0.50 vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vmovsldup (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovsldup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vmovsldup (%rax), %ymm2
+# CHECK-NEXT: 1 2 0.50 vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 * vmovss %xmm0, (%rax)
+# CHECK-NEXT: 1 5 0.50 * vmovss (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 vmovupd %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovupd %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovupd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovupd %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovupd %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovupd (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vmovups %xmm0, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovupd (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovupd %ymm0, %ymm2
+# CHECK-NEXT: 8 1 1.00 * vmovupd %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovupd (%rax), %ymm2
+# CHECK-NEXT: 1 1 0.50 vmovups %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * vmovups %xmm0, (%rax)
-# CHECK-NEXT: 1 6 0.50 * vmovups (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vmovups %ymm0, %ymm2
-# CHECK-NEXT: 1 1 1.00 * vmovups %ymm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovups (%rax), %ymm2
-# CHECK-NEXT: 3 7 1.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 13 1.00 * vmpsadbw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 0.50 * vmovups (%rax), %xmm2
+# CHECK-NEXT: 2 2 1.00 vmovups %ymm0, %ymm2
+# CHECK-NEXT: 8 1 1.00 * vmovups %ymm0, (%rax)
+# CHECK-NEXT: 2 5 0.50 * vmovups (%rax), %ymm2
+# CHECK-NEXT: 9 9 2.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 9 14 2.00 * vmpsadbw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vmulpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vmulpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vmulpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 12 1.00 * vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.00 * vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vmulpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vmulps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vmulps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 12 1.00 * vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.00 * vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vmulps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vmulsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vmulsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vmulss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vmulss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 0.50 vpabsb %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpabsb (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpabsd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpabsd (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpabsw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpabsw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpackuswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpalignr $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpalignr $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.33 vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpand (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.33 vpandn %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpandn (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpavgb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpavgw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpblendvb %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 6.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.67 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpeqb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpeqd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpeqq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpeqw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 4 2.67 vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 2.33 * vpcmpestri $1, (%rax), %xmm2
-# CHECK-NEXT: 1 11 2.67 vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 2.33 * vpcmpestrm $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpgtb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpgtb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpgtd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpgtd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpcmpgtq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpcmpgtw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpcmpgtw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 11 3.00 vpcmpistri $1, %xmm0, %xmm2
-# CHECK-NEXT: 4 17 3.00 * vpcmpistri $1, (%rax), %xmm2
-# CHECK-NEXT: 3 11 3.00 vpcmpistrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 4 17 3.00 * vpcmpistrm $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vperm2f128 $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vperm2f128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpermilpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpermilpd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpermilpd $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpermilpd $1, (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpermilps $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpermilps $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpermilps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpermilps $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpermilps $1, (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vpermilps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 3 1.00 vpextrb $1, %xmm0, %ecx
-# CHECK-NEXT: 3 5 1.00 * vpextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 3 1.00 vpextrd $1, %xmm0, %ecx
-# CHECK-NEXT: 4 5 1.00 * vpextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 3 1.00 vpextrq $1, %xmm0, %rcx
-# CHECK-NEXT: 4 5 1.00 * vpextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 3 1.00 vpextrw $1, %xmm0, %ecx
-# CHECK-NEXT: 3 5 1.00 * vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: 3 3 1.50 vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 1.50 vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 1.50 vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vphminposuw %xmm0, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vphminposuw (%rax), %xmm2
-# CHECK-NEXT: 3 3 1.50 vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 1.50 vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 1.50 vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 1.50 * vphsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpinsrb $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpinsrb $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpinsrd $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpinsrw $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmaddubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmaddubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmaddwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmaddwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpminuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmuldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmuldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmulhrsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmulhrsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmulhuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmulhuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmulhw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmulhw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmullw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmullw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpmuludq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpmuludq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.33 vpor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 1.00 vpsadbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsignb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsignb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsignd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsignd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsignw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsllw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrad %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsraw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 8 1.00 * vpsrlw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vptest %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vptest (%rax), %xmm1
-# CHECK-NEXT: 2 2 1.00 vptest %ymm0, %ymm1
-# CHECK-NEXT: 3 9 1.00 * vptest (%rax), %ymm1
-# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.33 vpxor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpabsb %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpabsb (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpabsd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpabsd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpabsw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpabsw (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 2.00 vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 2.00 * vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 6 13 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 6 17 1.00 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 27 15 4.00 vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: 28 20 4.50 * vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 27 10 4.00 vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 28 15 4.50 * vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 7 14 1.00 vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: 8 19 1.00 * vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: 7 6 1.00 vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 9 11 1.00 * vpcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: 8 4 0.50 vperm2f128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 8 0.50 * vperm2f128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpermilpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpermilpd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 3 2.00 vpermilpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 2.00 * vpermilpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpermilpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $1, (%rax), %ymm2
+# CHECK-NEXT: 2 3 3.00 vpermilpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 3.00 * vpermilpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpermilps $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpermilps $1, (%rax), %xmm2
+# CHECK-NEXT: 1 3 2.00 vpermilps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 2.00 * vpermilps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpermilps $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vpermilps $1, (%rax), %ymm2
+# CHECK-NEXT: 2 3 3.00 vpermilps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 3.00 * vpermilps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 13 1.00 vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 * vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 13 1.00 vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 * vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 13 1.00 vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: 2 13 1.00 * vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 13 1.00 vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 1.00 * vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: 3 5 0.50 vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 0.50 vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 0.50 vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 4 1.00 vphminposuw %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.00 * vphminposuw (%rax), %xmm2
+# CHECK-NEXT: 3 5 0.50 vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 0.50 vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 0.50 vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 0.50 * vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.50 vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.50 vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.50 vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.50 vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmaddubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmaddubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmaddwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmaddwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 13 1.00 vpmovmskb %xmm0, %ecx
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmuldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmulhrsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmulhrsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmulhuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmulhuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmulhw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 2.00 vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 2.00 * vpmulld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmullw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vpmuludq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vpmuludq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 4 0.50 vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 9 0.50 * vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 2.00 vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 2.00 * vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 0.50 vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 0.50 * vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vptest %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vptest (%rax), %xmm1
+# CHECK-NEXT: 4 1 1.00 vptest %ymm0, %ymm1
+# CHECK-NEXT: 6 6 1.00 * vptest (%rax), %ymm1
+# CHECK-NEXT: 1 2 0.50 vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vrcpps %xmm0, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vrcpps (%rax), %xmm2
-# CHECK-NEXT: 3 7 2.00 vrcpps %ymm0, %ymm2
-# CHECK-NEXT: 4 14 2.00 * vrcpps (%rax), %ymm2
+# CHECK-NEXT: 1 10 1.00 * vrcpps (%rax), %xmm2
+# CHECK-NEXT: 2 5 2.00 vrcpps %ymm0, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vrcpps (%rax), %ymm2
# CHECK-NEXT: 1 5 1.00 vrcpss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vrcpss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vroundpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vroundpd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vroundpd $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vroundpd $1, (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vroundps $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vroundps $1, (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vroundps $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vroundps $1, (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vroundsd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vroundsd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vroundss $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vroundss $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vroundpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vroundpd $1, (%rax), %xmm2
+# CHECK-NEXT: 2 4 2.00 vroundpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 9 2.00 * vroundpd $1, (%rax), %ymm2
+# CHECK-NEXT: 1 4 1.00 vroundps $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vroundps $1, (%rax), %xmm2
+# CHECK-NEXT: 2 4 2.00 vroundps $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 9 2.00 * vroundps $1, (%rax), %ymm2
+# CHECK-NEXT: 1 4 1.00 vroundsd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vroundsd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 4 1.00 vroundss $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.00 * vroundss $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vrsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vrsqrtps (%rax), %xmm2
-# CHECK-NEXT: 3 7 2.00 vrsqrtps %ymm0, %ymm2
-# CHECK-NEXT: 4 14 2.00 * vrsqrtps (%rax), %ymm2
+# CHECK-NEXT: 1 10 1.00 * vrsqrtps (%rax), %xmm2
+# CHECK-NEXT: 2 5 2.00 vrsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vrsqrtps (%rax), %ymm2
# CHECK-NEXT: 1 5 1.00 vrsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 11 1.00 * vrsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vshufpd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vshufpd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vshufpd $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vshufpd $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vshufps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vshufps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vshufps $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vshufps $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 21 21.00 vsqrtpd %xmm0, %xmm2
-# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax), %xmm2
-# CHECK-NEXT: 3 45 44.00 vsqrtpd %ymm0, %ymm2
-# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %ymm2
-# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax), %xmm2
-# CHECK-NEXT: 3 29 28.00 vsqrtps %ymm0, %ymm2
-# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %ymm2
-# CHECK-NEXT: 1 21 21.00 vsqrtsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U vstmxcsr (%rax)
-# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vsubss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vtestpd %xmm0, %xmm1
-# CHECK-NEXT: 2 7 1.00 * vtestpd (%rax), %xmm1
-# CHECK-NEXT: 1 1 1.00 vtestpd %ymm0, %ymm1
-# CHECK-NEXT: 2 8 1.00 * vtestpd (%rax), %ymm1
-# CHECK-NEXT: 1 1 1.00 vtestps %xmm0, %xmm1
-# CHECK-NEXT: 2 7 1.00 * vtestps (%rax), %xmm1
-# CHECK-NEXT: 1 1 1.00 vtestps %ymm0, %ymm1
-# CHECK-NEXT: 2 8 1.00 * vtestps (%rax), %ymm1
-# CHECK-NEXT: 2 2 1.00 vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vucomisd (%rax), %xmm1
-# CHECK-NEXT: 2 2 1.00 vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 3 8 1.00 * vucomiss (%rax), %xmm1
-# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vxorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vxorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 20 9 2.00 * * U vzeroall
-# CHECK-NEXT: 1 100 0.33 * * U vzeroupper
+# CHECK-NEXT: 1 10 1.00 * vrsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 0.50 vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 13.50 vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 13.50 * vsqrtpd (%rax), %xmm2
+# CHECK-NEXT: 2 9 27.00 vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT: 2 14 27.00 * vsqrtpd (%rax), %ymm2
+# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 1 14 10.50 * vsqrtps (%rax), %xmm2
+# CHECK-NEXT: 2 9 21.00 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 2 14 21.00 * vsqrtps (%rax), %ymm2
+# CHECK-NEXT: 1 9 13.50 vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 13.50 * vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 10.50 vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 10.50 * vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 0.50 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 1 5 1.00 vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.00 vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 2.00 vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 2.00 * vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.00 vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.00 vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.00 * vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 1.00 vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vtestpd (%rax), %xmm1
+# CHECK-NEXT: 4 1 1.00 vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 6 6 1.00 * vtestpd (%rax), %ymm1
+# CHECK-NEXT: 2 1 1.00 vtestps %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vtestps (%rax), %xmm1
+# CHECK-NEXT: 4 1 1.00 vtestps %ymm0, %ymm1
+# CHECK-NEXT: 6 6 1.00 * vtestps (%rax), %ymm1
+# CHECK-NEXT: 2 1 1.00 vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vucomisd (%rax), %xmm1
+# CHECK-NEXT: 2 1 1.00 vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 2 6 1.00 * vucomiss (%rax), %xmm1
+# CHECK-NEXT: 1 2 0.50 vunpckhpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vunpckhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vunpckhpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vunpckhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vunpckhps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vunpcklpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vunpcklpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vunpcklps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vunpcklps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vunpcklps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.50 vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 0.50 * vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 32 90 8.00 * * U vzeroall
+# CHECK-NEXT: 16 46 4.00 * * U vzeroupper
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 572.00 246.83 317.33 39.00 365.83 179.50 179.50
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 229.00 229.00 - - - 56.00 - - 588.00 588.00 127.50 127.50 38.00 107.00 402.50 429.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - vaesdec %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 vaesdec (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - vaesdeclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 vaesdeclast (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - vaesenc %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 vaesenc (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 - - vaesenclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 1.33 0.50 0.50 vaesenclast (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 2.00 - - vaesimc %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 2.00 0.50 0.50 vaesimc (%rax), %xmm2
-# CHECK-NEXT: - - 3.67 3.67 - 3.67 - - vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: - - 3.33 3.33 - 3.33 0.50 0.50 vaeskeygenassist $22, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vandnpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vandnps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vandpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vandps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vblendpd $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 0.50 0.50 vblendpd $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vblendpd $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 - - 0.50 0.50 0.50 vblendpd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vblendps $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 0.50 0.50 vblendps $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vblendps $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 - - 0.50 0.50 0.50 vblendps $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vblendvpd %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vblendvps %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vbroadcastf128 (%rax), %ymm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vbroadcastsd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vbroadcastss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vbroadcastss (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcmpss $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcomisd %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcomisd (%rax), %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcomiss %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcomiss (%rax), %xmm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %ymm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtpd2dq %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtpd2dqx (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtpd2dq %ymm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtpd2dqy (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtpd2ps %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtpd2psx (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtpd2ps %ymm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtpd2psy (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtps2dq %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtps2dq %ymm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vcvtps2pd %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vcvtps2pd (%rax), %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vcvtps2pd %xmm0, %ymm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vcvtps2pd (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvtsd2si %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvtsd2si %xmm0, %rcx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvtsd2si (%rax), %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvtsd2si (%rax), %rcx
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtsd2ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtsd2ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtsi2sdl %ecx, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtsi2sdq %rcx, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtsi2sdl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtsi2sdq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vcvtsi2ssl %ecx, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vcvtsi2ssq %rcx, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtsi2ssl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtsi2ssq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vcvtss2sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vcvtss2sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvtss2si %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvtss2si %xmm0, %rcx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvtss2si (%rax), %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvtss2si (%rax), %rcx
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvttpd2dq %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvttpd2dqx (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvttpd2dq %ymm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvttpd2dqy (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %ymm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvttsd2si %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvttsd2si %xmm0, %rcx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvttsd2si (%rax), %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvttsd2si (%rax), %rcx
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvttss2si %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - - - vcvttss2si %xmm0, %rcx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvttss2si (%rax), %ecx
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - 22.00 1.00 - - - - - vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 22.00 1.00 - - - 0.50 0.50 vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 14.00 1.00 - - - - - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 22.00 1.00 - - - - - vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 22.00 1.00 - - - 0.50 0.50 vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - - - vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vdivss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - vdppd $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 0.50 0.50 vdppd $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 2.00 - 1.00 - - vdpps $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 2.00 - 1.00 0.50 0.50 vdpps $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 2.00 - 1.00 - - vdpps $22, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 2.00 - 1.00 0.50 0.50 vdpps $22, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vextractf128 $1, %ymm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vextractf128 $1, %ymm0, (%rax)
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - 1.00 1.00 0.50 0.50 vextractps $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 2.00 - - vhsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 vhsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vinsertf128 $1, %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 - - 0.50 0.50 0.50 vinsertf128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vinsertps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vinsertps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vlddqu (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vlddqu (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 vldmxcsr (%rax)
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmaskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vmaskmovpd (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 1.00 - 0.50 0.50 vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - 0.50 0.50 1.00 - 0.50 0.50 vmaskmovpd %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vmaskmovps (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 1.00 - 0.50 0.50 vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - 0.50 0.50 1.00 - 0.50 0.50 vmaskmovps %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovapd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovapd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovapd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovapd %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovapd %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovapd (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovaps %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovaps %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovaps (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovaps %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovaps %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovaps (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovd %eax, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovd (%rax), %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmovd %xmm0, %ecx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - vmovddup %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovddup (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovddup %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovddup (%rax), %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqa %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqa %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqa (%rax), %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqa %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqa %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqa (%rax), %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu (%rax), %xmm2
-# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovhlps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovlhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovhpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vmovhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovhps %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vmovhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vmovlpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovlps %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vmovlps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmovmskpd %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 - - - - - vmovmskpd %ymm0, %ecx
-# CHECK-NEXT: - - 1.00 - - - - - vmovmskps %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 - - - - - vmovmskps %ymm0, %ecx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntdq %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntdq %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovntdqa (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovntdqa (%rax), %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntpd %ymm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntps %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovntps %ymm0, (%rax)
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovq %rax, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovq (%rax), %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmovq %xmm0, %rcx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovq %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - vmovsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovsd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovshdup %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovshdup (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovshdup %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovshdup (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovsldup %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovsldup (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovsldup %ymm0, %ymm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovsldup (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovss %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovss (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovupd %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovupd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovupd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovupd %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovupd %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovupd (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovups %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovups %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovups (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vmovups %ymm0, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovups %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 vmovups (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - vmpsadbw $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 1.00 - 1.00 0.50 0.50 vmpsadbw $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vmulss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsb %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpabsb (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpabsd (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsw %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpabsw (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpackuswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpalignr $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpalignr $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 vpand (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpandn %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 vpandn (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendvb %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpblendw $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpblendw $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 6.00 6.00 - 6.00 - - vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 5.67 5.67 - 5.67 0.50 0.50 vpclmulqdq $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 2.67 2.67 - 2.67 - - vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 2.33 2.33 - 2.33 0.50 0.50 vpcmpestri $1, (%rax), %xmm2
-# CHECK-NEXT: - - 2.67 2.67 - 2.67 - - vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 2.33 2.33 - 2.33 0.50 0.50 vpcmpestrm $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpgtb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpgtd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpcmpgtq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpcmpgtq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpgtw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 3.00 - - - - - vpcmpistri $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 3.00 - - - 0.50 0.50 vpcmpistri $1, (%rax), %xmm2
-# CHECK-NEXT: - - 3.00 - - - - - vpcmpistrm $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 3.00 - - - 0.50 0.50 vpcmpistrm $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vperm2f128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilps $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilps $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vpermilps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrb $1, %xmm0, %ecx
-# CHECK-NEXT: - - - 0.50 1.00 0.50 0.50 0.50 vpextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrd $1, %xmm0, %ecx
-# CHECK-NEXT: - - 1.00 0.50 1.00 0.50 0.50 0.50 vpextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrq $1, %xmm0, %rcx
-# CHECK-NEXT: - - 1.00 0.50 1.00 0.50 0.50 0.50 vpextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrw $1, %xmm0, %ecx
-# CHECK-NEXT: - - - 0.50 1.00 0.50 0.50 0.50 vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vphminposuw %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vphminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrb $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrb $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrd $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrw $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmovzxwq (%rax), %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmuldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmuldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmullw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpmuludq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmuludq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 vpor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsadbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsignb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsignb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsignd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsignd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsignw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpslld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrad %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vptest %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vptest (%rax), %xmm1
-# CHECK-NEXT: - - 1.00 - - 1.00 - - vptest %ymm0, %ymm1
-# CHECK-NEXT: - - 1.00 - - 1.00 0.50 0.50 vptest (%rax), %ymm1
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpxor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 vpxor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vrcpps %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vrcpps (%rax), %xmm2
-# CHECK-NEXT: - - 2.50 - - 0.50 - - vrcpps %ymm0, %ymm2
-# CHECK-NEXT: - - 2.50 - - 0.50 0.50 0.50 vrcpps (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 - - - - - vrcpss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vrcpss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundpd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundpd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundpd $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundpd $1, (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundps $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundps $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundps $1, %ymm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundps $1, (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundsd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundsd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vroundss $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vroundss $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vrsqrtps %xmm0, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vrsqrtps (%rax), %xmm2
-# CHECK-NEXT: - - 2.50 - - 0.50 - - vrsqrtps %ymm0, %ymm2
-# CHECK-NEXT: - - 2.50 - - 0.50 0.50 0.50 vrsqrtps (%rax), %ymm2
-# CHECK-NEXT: - - 1.00 - - - - - vrsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vrsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vshufpd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufpd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vshufpd $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufpd $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vshufps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vshufps $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufps $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtpd %xmm0, %xmm2
-# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax), %xmm2
-# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %ymm0, %ymm2
-# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %ymm2
-# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax), %xmm2
-# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %ymm0, %ymm2
-# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %ymm2
-# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 vstmxcsr (%rax)
-# CHECK-NEXT: - - - 1.00 - - - - vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 1.00 - - - - - vtestpd %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vtestpd (%rax), %xmm1
-# CHECK-NEXT: - - 1.00 - - - - - vtestpd %ymm0, %ymm1
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vtestpd (%rax), %ymm1
-# CHECK-NEXT: - - 1.00 - - - - - vtestps %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vtestps (%rax), %xmm1
-# CHECK-NEXT: - - 1.00 - - - - - vtestps %ymm0, %ymm1
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vtestps (%rax), %ymm1
-# CHECK-NEXT: - - 1.00 1.00 - - - - vucomisd %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vucomisd (%rax), %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - - - vucomiss %xmm0, %xmm1
-# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 vucomiss (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vxorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - vxorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 2.00 - - vzeroall
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vzeroupper
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaesdec %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaesdeclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaesdeclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaesenc %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaesenclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaesenclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaesimc %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaesimc (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vaeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vblendpd $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vblendpd $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vblendpd $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vblendps $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vblendps $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vblendps $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vblendvps %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vbroadcastsd (%rax), %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vbroadcastss (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vbroadcastss (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmppd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmppd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vcmppd $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vcmppd $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpps $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpps $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vcmpps $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vcmpps $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpsd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpsd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpss $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vcomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vcomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vcomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vcomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtdq2pd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtdq2pd %xmm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtdq2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtdq2ps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtdq2ps %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtdq2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtpd2ps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtpd2psx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtpd2ps %ymm0, %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtpd2psy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2dq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtps2dq %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2pd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtps2pd %xmm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtps2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtsd2si %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtsd2si (%rax), %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsd2ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2sdl %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2sdq %rcx, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2sdl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2sdq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2ssl %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2ssq %rcx, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2ssl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtsi2ssq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtss2sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtss2sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtss2si %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtss2si (%rax), %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvtss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvttpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvttpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvttpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvttpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvttps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvttps2dq %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvttps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttsd2si %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttsd2si (%rax), %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttss2si %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttss2si (%rax), %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - vcvttss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 19.00 19.00 - - - - - 2.00 - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 19.00 19.00 - - - - - 2.00 - - - - vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 19.00 19.00 - - - - - 2.00 - - - - vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 19.00 19.00 - - - - - 2.00 - - - - vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - - vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - - 1.00 - - - - vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.50 1.50 - - - - - 1.00 - - - - vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - - 1.00 - - - - vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.50 1.50 - - - - - 1.00 - - - - vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - - 2.00 - - - - vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - - 2.00 - - - - vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vextractf128 $1, %ymm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vextractps $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vinsertf128 $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vinsertf128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vinsertps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vinsertps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vlddqu (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vlddqu (%rax), %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - vldmxcsr (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmaskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - vmaskmovpd (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovapd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovapd %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovapd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovapd %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovapd %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovapd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovaps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovaps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovaps %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovaps %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovaps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovd %eax, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovd %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovddup %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovddup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovddup %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovddup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovdqa %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - vmovdqa %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqa (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovdqu %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - vmovdqu %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovdqu %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovdqu (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovhlps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovlhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovhps %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovlps %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovmskpd %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovmskpd %ymm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovmskps %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovmskps %ymm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovntdq %xmm0, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - vmovntdq %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovntdqa (%rax), %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovntpd %xmm0, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - vmovntpd %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovntps %xmm0, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - vmovntps %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovq %rax, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vmovq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vmovq %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovsd %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovshdup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovshdup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovsldup %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovsldup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovss %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovupd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovupd %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovupd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovupd %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovupd %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovupd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovups %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovups %xmm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovups (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vmovups %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vmovups %ymm0, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vmovups (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - 2.00 - 1.00 - - - - - vmpsadbw $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 2.00 - 1.00 - - - - - vmpsadbw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsb %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsw %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpblendw $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 4.00 4.00 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - - vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: 4.50 4.50 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - - vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 4.00 4.00 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - - vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 4.50 4.50 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - - vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - vpcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vpermilpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vpermilpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vpermilpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vpermilpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vpermilpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vpermilpd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vpermilpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vpermilpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vpermilps $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vpermilps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vpermilps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - vpermilps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vpermilps $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vpermilps $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vpermilps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - vpermilps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 1.00 - - - - - vphminposuw %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 1.00 - - - - - vphminposuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmaddubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmaddubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmaddwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmaddwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vpmovmskb %xmm0, %ecx
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmuldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhrsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 2.00 - 2.50 0.50 - - - - vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 2.00 - 2.50 0.50 - - - - vpmulld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmullw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - vpmuludq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - vpmuludq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vptest %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vptest (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vptest %ymm0, %ymm1
+# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vptest (%rax), %ymm1
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrcpps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrcpps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vrcpps %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vrcpps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrcpss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vroundpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vroundpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vroundpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vroundpd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vroundps $1, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vroundps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vroundps $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vroundps $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vroundsd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vroundsd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vroundss $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vroundss $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vrsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - - vrsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - - vrsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 13.50 13.50 - - - - - 1.00 - - - - vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 13.50 13.50 - - - - - 1.00 - - - - vsqrtpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 27.00 27.00 - - - - - 2.00 - - - - vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 27.00 27.00 - - - - - 2.00 - - - - vsqrtpd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 10.50 10.50 - - - - - 1.00 - - - - vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 10.50 10.50 - - - - - 1.00 - - - - vsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 21.00 21.00 - - - - - 2.00 - - - - vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 21.00 21.00 - - - - - 2.00 - - - - vsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 13.50 13.50 - - - - - 1.00 - - - - vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 13.50 13.50 - - - - - 1.00 - - - - vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 10.50 10.50 - - - - - 1.00 - - - - vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 10.50 10.50 - - - - - 1.00 - - - - vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - vstmxcsr (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - - vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - - vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vtestps %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vtestps (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - vtestps (%rax), %ymm1
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vucomisd %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vucomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vucomiss %xmm0, %xmm1
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - vucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpckhpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpckhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpckhpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpckhpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpckhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpckhps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpcklpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpcklpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpcklpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpcklps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vunpcklps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpcklps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vunpcklps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vzeroall
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - vzeroupper
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
andn %eax, %ebx, %ecx
andn (%rax), %ebx, %ecx
@@ -46,68 +46,80 @@ tzcnt (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.33 andnl %eax, %ebx, %ecx
-# CHECK-NEXT: 2 6 0.50 * andnl (%rax), %ebx, %ecx
-# CHECK-NEXT: 1 1 0.33 andnq %rax, %rbx, %rcx
-# CHECK-NEXT: 2 6 0.50 * andnq (%rax), %rbx, %rcx
-# CHECK-NEXT: 2 2 1.00 bextrl %eax, %ebx, %ecx
-# CHECK-NEXT: 3 7 1.00 * bextrl %eax, (%rbx), %ecx
-# CHECK-NEXT: 2 2 1.00 bextrq %rax, %rbx, %rcx
-# CHECK-NEXT: 3 7 1.00 * bextrq %rax, (%rbx), %rcx
-# CHECK-NEXT: 1 1 0.33 blsil %eax, %ecx
+# CHECK-NEXT: 1 1 0.50 andnl %eax, %ebx, %ecx
+# CHECK-NEXT: 1 5 0.50 * andnl (%rax), %ebx, %ecx
+# CHECK-NEXT: 1 1 0.50 andnq %rax, %rbx, %rcx
+# CHECK-NEXT: 1 5 0.50 * andnq (%rax), %rbx, %rcx
+# CHECK-NEXT: 2 2 0.50 bextrl %eax, %ebx, %ecx
+# CHECK-NEXT: 2 6 0.50 * bextrl %eax, (%rbx), %ecx
+# CHECK-NEXT: 2 2 0.50 bextrq %rax, %rbx, %rcx
+# CHECK-NEXT: 2 6 0.50 * bextrq %rax, (%rbx), %rcx
+# CHECK-NEXT: 2 2 0.50 blsil %eax, %ecx
# CHECK-NEXT: 2 6 0.50 * blsil (%rax), %ecx
-# CHECK-NEXT: 1 1 0.33 blsiq %rax, %rcx
+# CHECK-NEXT: 2 2 0.50 blsiq %rax, %rcx
# CHECK-NEXT: 2 6 0.50 * blsiq (%rax), %rcx
-# CHECK-NEXT: 1 1 0.33 blsmskl %eax, %ecx
+# CHECK-NEXT: 2 2 0.50 blsmskl %eax, %ecx
# CHECK-NEXT: 2 6 0.50 * blsmskl (%rax), %ecx
-# CHECK-NEXT: 1 1 0.33 blsmskq %rax, %rcx
+# CHECK-NEXT: 2 2 0.50 blsmskq %rax, %rcx
# CHECK-NEXT: 2 6 0.50 * blsmskq (%rax), %rcx
-# CHECK-NEXT: 1 1 0.33 blsrl %eax, %ecx
+# CHECK-NEXT: 2 2 0.50 blsrl %eax, %ecx
# CHECK-NEXT: 2 6 0.50 * blsrl (%rax), %ecx
-# CHECK-NEXT: 1 1 0.33 blsrq %rax, %rcx
+# CHECK-NEXT: 2 2 0.50 blsrq %rax, %rcx
# CHECK-NEXT: 2 6 0.50 * blsrq (%rax), %rcx
-# CHECK-NEXT: 1 3 1.00 tzcntl %eax, %ecx
-# CHECK-NEXT: 2 8 1.00 * tzcntl (%rax), %ecx
-# CHECK-NEXT: 1 3 1.00 tzcntq %rax, %rcx
-# CHECK-NEXT: 2 8 1.00 * tzcntq (%rax), %rcx
+# CHECK-NEXT: 2 2 1.00 tzcntl %eax, %ecx
+# CHECK-NEXT: 2 6 1.00 * tzcntl (%rax), %ecx
+# CHECK-NEXT: 2 2 1.00 tzcntq %rax, %rcx
+# CHECK-NEXT: 2 6 1.00 * tzcntq (%rax), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 7.33 13.33 - 7.33 6.00 6.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 6.00 6.00 - - - 14.00 14.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - andnl %eax, %ebx, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 andnl (%rax), %ebx, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - andnq %rax, %rbx, %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 andnq (%rax), %rbx, %rcx
-# CHECK-NEXT: - - 0.50 1.00 - 0.50 - - bextrl %eax, %ebx, %ecx
-# CHECK-NEXT: - - 0.50 1.00 - 0.50 0.50 0.50 bextrl %eax, (%rbx), %ecx
-# CHECK-NEXT: - - 0.50 1.00 - 0.50 - - bextrq %rax, %rbx, %rcx
-# CHECK-NEXT: - - 0.50 1.00 - 0.50 0.50 0.50 bextrq %rax, (%rbx), %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsil %eax, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsil (%rax), %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsiq %rax, %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsiq (%rax), %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsmskl %eax, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsmskl (%rax), %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsmskq %rax, %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsmskq (%rax), %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsrl %eax, %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsrl (%rax), %ecx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - blsrq %rax, %rcx
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 blsrq (%rax), %rcx
-# CHECK-NEXT: - - - 1.00 - - - - tzcntl %eax, %ecx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 tzcntl (%rax), %ecx
-# CHECK-NEXT: - - - 1.00 - - - - tzcntq %rax, %rcx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 tzcntq (%rax), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - andnl %eax, %ebx, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - andnl (%rax), %ebx, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - andnq %rax, %rbx, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - andnq (%rax), %rbx, %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - bextrl %eax, %ebx, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - bextrl %eax, (%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - bextrq %rax, %rbx, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - bextrq %rax, (%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsil %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsil (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsiq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsiq (%rax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsmskl %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsmskl (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsmskq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsmskq (%rax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsrl %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsrl (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - blsrq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - blsrq (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - tzcntl %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - tzcntl (%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - tzcntq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - - tzcntq (%rax), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
clflushopt (%rax)
@@ -12,22 +12,34 @@ clflushopt (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 4 5 1.00 * * U clflushopt (%rax)
+# CHECK-NEXT: 1 5 0.50 * * U clflushopt (%rax)
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 0.50 0.50 1.00 1.00 0.50 0.50
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 1.00 1.00 0.50 0.50 clflushopt (%rax)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - clflushopt (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
cmovow %si, %di
cmovnow %si, %di
@@ -112,212 +112,224 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: [6]: HasSideEffects (U)
# 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-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 5 0.50 * cmovow (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovnow (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovbw (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovaew (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovew (%rax), %di
+# CHECK-NEXT: 1 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: 1 5 0.50 * cmovsw (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovnsw (%rax), %di
+# CHECK-NEXT: 1 5 0.50 * cmovpw (%rax), %di
+# CHECK-NEXT: 1 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.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 5 0.50 * cmovol (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovnol (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovbl (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovael (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovel (%rax), %edi
+# CHECK-NEXT: 1 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: 1 5 0.50 * cmovsl (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovnsl (%rax), %edi
+# CHECK-NEXT: 1 5 0.50 * cmovpl (%rax), %edi
+# CHECK-NEXT: 1 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.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 5 0.50 * cmovoq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmovnoq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmovbq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmovaeq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmoveq (%rax), %rdi
+# CHECK-NEXT: 1 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: 1 5 0.50 * cmovsq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmovnsq (%rax), %rdi
+# CHECK-NEXT: 1 5 0.50 * cmovpq (%rax), %rdi
+# CHECK-NEXT: 1 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] - 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# 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-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 24.00 24.00 - - - 48.00 48.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
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] 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 - - - 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.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - cmovbew (%rax), %di
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - 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.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 - - - 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.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - cmovbel (%rax), %edi
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - 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.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 - - - 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.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - cmovbeq (%rax), %rdi
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - 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
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
cmpxchg8b (%rax)
cmpxchg16b (%rax)
@@ -13,24 +13,36 @@ cmpxchg16b (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 3 6 1.00 * * cmpxchg8b (%rax)
-# CHECK-NEXT: 3 6 1.00 * * cmpxchg16b (%rax)
+# CHECK-NEXT: 18 3 1.00 * * cmpxchg8b (%rax)
+# CHECK-NEXT: 22 3 1.00 * * cmpxchg16b (%rax)
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 0.67 0.67 2.00 0.67 2.00 2.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 cmpxchg8b (%rax)
-# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 cmpxchg16b (%rax)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - cmpxchg8b (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - cmpxchg16b (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
vcvtph2ps %xmm0, %xmm2
vcvtph2ps (%rax), %xmm2
@@ -22,36 +22,48 @@ vcvtps2ph $0, %ymm0, (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 vcvtph2ps %xmm0, %xmm2
-# CHECK-NEXT: 2 8 1.00 * vcvtph2ps (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 vcvtph2ps %xmm0, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vcvtph2ps (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 vcvtps2ph $0, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 1.00 * vcvtps2ph $0, %xmm0, (%rax)
-# CHECK-NEXT: 1 3 1.00 vcvtps2ph $0, %ymm0, %xmm2
-# CHECK-NEXT: 1 4 1.00 * vcvtps2ph $0, %ymm0, (%rax)
+# CHECK-NEXT: 2 8 1.00 vcvtph2ps %xmm0, %xmm2
+# CHECK-NEXT: 3 13 1.00 * vcvtph2ps (%rax), %xmm2
+# CHECK-NEXT: 4 8 2.00 vcvtph2ps %xmm0, %ymm2
+# CHECK-NEXT: 7 13 2.00 * vcvtph2ps (%rax), %ymm2
+# CHECK-NEXT: 2 8 1.00 vcvtps2ph $0, %xmm0, %xmm2
+# CHECK-NEXT: 3 4 1.00 * vcvtps2ph $0, %xmm0, (%rax)
+# CHECK-NEXT: 4 8 2.00 vcvtps2ph $0, %ymm0, %xmm2
+# CHECK-NEXT: 4 4 2.00 * vcvtps2ph $0, %ymm0, (%rax)
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 8.00 2.00 - 2.00 2.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 2.50 2.50 - - - - - - 1.00 1.00 - - - 8.00 - 12.00 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - vcvtph2ps %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtph2ps (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtph2ps %xmm0, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtph2ps (%rax), %ymm2
-# CHECK-NEXT: - - - 1.00 - - - - vcvtps2ph $0, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 vcvtps2ph $0, %xmm0, (%rax)
-# CHECK-NEXT: - - - 1.00 - - - - vcvtps2ph $0, %ymm0, %xmm2
-# CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 vcvtps2ph $0, %ymm0, (%rax)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtph2ps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtph2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtph2ps %xmm0, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - - vcvtph2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2ph $0, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - vcvtps2ph $0, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtps2ph $0, %ymm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - vcvtps2ph $0, %ymm0, (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
vfmadd132pd %xmm0, %xmm1, %xmm2
vfmadd132pd (%rax), %xmm1, %xmm2
@@ -299,403 +299,415 @@ vfnmsub231ss (%rax), %xmm1, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 0.50 vfmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmadd231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd132sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd213sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd231sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd132ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmadd231ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmaddsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmaddsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmaddsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmaddsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmaddsub231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsub231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub132sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub213sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub231sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub132ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfmsub231ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfmsubadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfmsubadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfmsubadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfmsubadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfmsubadd231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmadd231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd132sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd213sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd231sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd132ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmadd231ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub132pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub213pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub231pd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub132ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub213ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 0.50 vfnmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vfnmsub231ps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vfnmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub132sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub213sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub231sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub132ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub213ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vfnmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 10 0.50 * vfnmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 0.50 * vfnmsub231ss (%rax), %xmm1, %xmm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 96.00 96.00 - - 48.00 48.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 66.00 66.00 - - - - - - 96.00 96.00 - - - - 48.00 48.00 48.00 48.00 - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsub231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsub231ss (%rax), %xmm1, %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
@@ -139,211 +139,223 @@ vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 0.50 vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddss %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfmsubps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfmsubss %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 0.50 vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.00 * vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
# CHECK-NEXT: 1 5 0.50 vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: 1 5 0.50 vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 2 10 0.50 * vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 0.50 * vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 48.00 48.00 - - 32.00 32.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 44.00 44.00 - - - - - - 48.00 48.00 - - - - 24.00 24.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.50 0.50 - - - - vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmsubss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - - - vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lea.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lea.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lea.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
lea 0(), %cx
lea 0(), %ecx
@@ -148,290 +148,302 @@ lea 1024(%rax, %rbx, 2), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
-# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
-# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
-# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
-# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
-# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 2 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 2 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 67.50 67.50 - - - -
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: - - - - - 67.50 67.50 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 0, %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 0, %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 0, %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%eax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%eax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%eax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%rax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%rax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%rax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (,%rbx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%eax,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw (%rax,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal (%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq (%rax,%rbx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16, %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16, %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16, %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%eax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%eax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%eax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%rax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%rax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%rax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(,%rbx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%eax,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw -16(%rax,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal -16(%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq -16(%rax,%rbx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024, %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024, %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024, %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%eax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%eax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%eax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%rax), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%rax), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%rax), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(,%rbx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%eax,%ebx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaw 1024(%rax,%rbx,2), %cx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leal 1024(%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - 0.50 0.50 - - - - leaq 1024(%rax,%rbx,2), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 0, %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 0, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 0, %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%eax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%eax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%eax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%rax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%rax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16, %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16, %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%eax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%eax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%eax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%rax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%rax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024, %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024, %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%eax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%eax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%eax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%rax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%rax), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - leaq 1024(%rax,%rbx,2), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
lzcntw %cx, %cx
lzcntw (%rax), %cx
@@ -19,32 +19,44 @@ lzcntq (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 lzcntw %cx, %cx
-# CHECK-NEXT: 2 8 1.00 * lzcntw (%rax), %cx
-# CHECK-NEXT: 1 3 1.00 lzcntl %eax, %ecx
-# CHECK-NEXT: 2 8 1.00 * lzcntl (%rax), %ecx
-# CHECK-NEXT: 1 3 1.00 lzcntq %rax, %rcx
-# CHECK-NEXT: 2 8 1.00 * lzcntq (%rax), %rcx
+# CHECK-NEXT: 2 2 0.50 lzcntw %cx, %cx
+# CHECK-NEXT: 2 6 0.50 * lzcntw (%rax), %cx
+# CHECK-NEXT: 2 2 0.50 lzcntl %eax, %ecx
+# CHECK-NEXT: 2 6 0.50 * lzcntl (%rax), %ecx
+# CHECK-NEXT: 2 2 0.50 lzcntq %rax, %rcx
+# CHECK-NEXT: 2 6 0.50 * lzcntq (%rax), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 6.00 - - 1.50 1.50
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 1.50 1.50 - - - 3.00 3.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - lzcntw %cx, %cx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 lzcntw (%rax), %cx
-# CHECK-NEXT: - - - 1.00 - - - - lzcntl %eax, %ecx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 lzcntl (%rax), %ecx
-# CHECK-NEXT: - - - 1.00 - - - - lzcntq %rax, %rcx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 lzcntq (%rax), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - lzcntw %cx, %cx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - lzcntw (%rax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - lzcntl %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - lzcntl (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - lzcntq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - lzcntq (%rax), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-mmx.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-mmx.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-mmx.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-mmx.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
emms
@@ -164,230 +164,242 @@ pxor (%rax), %mm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 31 31 10.33 * * U emms
-# CHECK-NEXT: 1 1 1.00 movd %eax, %mm2
+# CHECK-NEXT: 1 2 0.50 * * U emms
+# CHECK-NEXT: 2 10 0.50 movd %eax, %mm2
# CHECK-NEXT: 1 5 0.50 * movd (%rax), %mm2
-# CHECK-NEXT: 1 2 1.00 movd %mm0, %ecx
-# CHECK-NEXT: 1 1 1.00 * U movd %mm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 movq %rax, %mm2
+# CHECK-NEXT: 1 10 1.00 movd %mm0, %ecx
+# CHECK-NEXT: 1 2 1.00 * U movd %mm0, (%rax)
+# CHECK-NEXT: 2 10 0.50 movq %rax, %mm2
# CHECK-NEXT: 1 5 0.50 * movq (%rax), %mm2
-# CHECK-NEXT: 1 2 1.00 movq %mm0, %rcx
-# CHECK-NEXT: 1 1 1.00 * movq %mm0, (%rax)
-# CHECK-NEXT: 1 1 1.00 packsswb %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * packsswb (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 packssdw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * packssdw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 packuswb %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * packuswb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddd %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddsb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddsb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddsw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddsw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddusb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddusb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddusw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddusw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 paddw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * paddw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.33 pand %mm0, %mm2
-# CHECK-NEXT: 2 6 0.50 * pand (%rax), %mm2
-# CHECK-NEXT: 1 1 0.33 pandn %mm0, %mm2
-# CHECK-NEXT: 2 6 0.50 * pandn (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpeqb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpeqb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpeqd %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpeqd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpeqw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpeqw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpgtb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpgtb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpgtd %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpgtd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 pcmpgtw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * pcmpgtw (%rax), %mm2
-# CHECK-NEXT: 1 5 1.00 pmaddwd %mm0, %mm2
-# CHECK-NEXT: 2 10 1.00 * pmaddwd (%rax), %mm2
-# CHECK-NEXT: 1 5 1.00 pmulhw %mm0, %mm2
-# CHECK-NEXT: 2 10 1.00 * pmulhw (%rax), %mm2
-# CHECK-NEXT: 1 5 1.00 pmullw %mm0, %mm2
-# CHECK-NEXT: 2 10 1.00 * pmullw (%rax), %mm2
-# CHECK-NEXT: 1 1 0.33 por %mm0, %mm2
-# CHECK-NEXT: 2 6 0.50 * por (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 pslld $1, %mm2
-# CHECK-NEXT: 1 1 1.00 pslld %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * pslld (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psllq $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psllq %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psllq (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psllw $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psllw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psllw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psrad $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psrad %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psrad (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psraw $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psraw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psraw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psrld $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psrld %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psrld (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psrlq $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psrlq %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psrlq (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 psrlw $1, %mm2
-# CHECK-NEXT: 1 1 1.00 psrlw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * psrlw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubd %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubd (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubsb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubsb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubsw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubsw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubusb %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubusb (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubusw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubusw (%rax), %mm2
-# CHECK-NEXT: 1 3 1.00 psubw %mm0, %mm2
-# CHECK-NEXT: 2 8 1.00 * psubw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpckhbw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpckhbw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpckhdq %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpckhdq (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpckhwd %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpckhwd (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpcklbw %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpcklbw (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpckldq %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpckldq (%rax), %mm2
-# CHECK-NEXT: 1 1 1.00 punpcklwd %mm0, %mm2
-# CHECK-NEXT: 2 6 1.00 * punpcklwd (%rax), %mm2
-# CHECK-NEXT: 1 1 0.33 pxor %mm0, %mm2
-# CHECK-NEXT: 2 6 0.50 * pxor (%rax), %mm2
+# CHECK-NEXT: 1 10 1.00 movq %mm0, %rcx
+# CHECK-NEXT: 1 2 1.00 * movq %mm0, (%rax)
+# CHECK-NEXT: 1 2 0.50 packsswb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * packsswb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 packssdw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * packssdw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 packuswb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * packuswb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddsb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddsb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddsw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddsw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddusb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddusb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddusw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddusw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 paddw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * paddw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pand %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pand (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pandn %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pandn (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpeqb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpeqd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpeqw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpeqw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpgtb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpgtb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpgtd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpgtd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pcmpgtw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pcmpgtw (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pmaddwd %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pmaddwd (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pmulhw %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pmulhw (%rax), %mm2
+# CHECK-NEXT: 1 4 1.00 pmullw %mm0, %mm2
+# CHECK-NEXT: 1 9 1.00 * pmullw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 por %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * por (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pslld $1, %mm2
+# CHECK-NEXT: 1 3 0.50 pslld %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * pslld (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psllq $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psllq %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psllq (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psllw $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psllw %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psllw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psrad $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psrad %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psrad (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psraw $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psraw %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psraw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psrld $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psrld %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psrld (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psrlq $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psrlq %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psrlq (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psrlw $1, %mm2
+# CHECK-NEXT: 1 3 0.50 psrlw %mm0, %mm2
+# CHECK-NEXT: 1 8 0.50 * psrlw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubsb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubsb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubsw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubsw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubusb %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubusb (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubusw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubusw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 psubw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * psubw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpckhbw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpckhbw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpckhdq %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpckhdq (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpckhwd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpckhwd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpcklbw %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpcklbw (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpckldq %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpckldq (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 punpcklwd %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * punpcklwd (%rax), %mm2
+# CHECK-NEXT: 1 2 0.50 pxor %mm0, %mm2
+# CHECK-NEXT: 1 7 0.50 * pxor (%rax), %mm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 21.00 53.00 2.00 57.00 24.00 24.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 24.00 24.00 - - - 2.00 - - 2.50 2.50 46.00 46.00 6.00 2.00 55.50 49.50 - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 10.33 10.33 - 10.33 - - emms
-# CHECK-NEXT: - - - - - 1.00 - - movd %eax, %mm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 movd (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - movd %mm0, %ecx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 movd %mm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - movq %rax, %mm2
-# CHECK-NEXT: - - - - - - 0.50 0.50 movq (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - movq %mm0, %rcx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 movq %mm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - packsswb %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 packsswb (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - packssdw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 packssdw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - packuswb %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 packuswb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddsb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddsb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddsw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddsw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddusb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddusb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddusw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddusw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - paddw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 paddw (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - pand %mm0, %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 pand (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - pandn %mm0, %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 pandn (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpeqb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpeqd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpeqw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpeqw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpgtb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpgtb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpgtd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpgtd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - pcmpgtw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 pcmpgtw (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - pmaddwd %mm0, %mm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmaddwd (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - pmulhw %mm0, %mm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmulhw (%rax), %mm2
-# CHECK-NEXT: - - 1.00 - - - - - pmullw %mm0, %mm2
-# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmullw (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - por %mm0, %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 por (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - pslld $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - pslld %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 pslld (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psllq $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psllq %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psllq (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psllw $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psllw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psllw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrad $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrad %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psrad (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psraw $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psraw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psraw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrld $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrld %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psrld (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrlq $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrlq %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psrlq (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrlw $1, %mm2
-# CHECK-NEXT: - - - - - 1.00 - - psrlw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 psrlw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubd %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubd (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubsb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubsb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubsw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubsw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubusb %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubusb (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubusw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubusw (%rax), %mm2
-# CHECK-NEXT: - - - 1.00 - - - - psubw %mm0, %mm2
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 psubw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpckhbw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpckhbw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpckhdq %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpckhdq (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpckhwd %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpckhwd (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpcklbw %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpcklbw (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpckldq %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpckldq (%rax), %mm2
-# CHECK-NEXT: - - - - - 1.00 - - punpcklwd %mm0, %mm2
-# CHECK-NEXT: - - - - - 1.00 0.50 0.50 punpcklwd (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - pxor %mm0, %mm2
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 pxor (%rax), %mm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - emms
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - movd %eax, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - movd (%rax), %mm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - movd %mm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - movd %mm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - movq %rax, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - movq (%rax), %mm2
+# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - movq %mm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - movq %mm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packsswb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packsswb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packssdw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packssdw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packuswb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - packuswb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddsb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddsb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddsw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddsw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddusb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddusb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddusw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddusw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - paddw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pand %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pand (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pandn %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pandn (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpeqw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pcmpgtw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - pmaddwd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - pmaddwd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - pmulhw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - pmulhw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - pmullw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - pmullw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - por %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - por (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pslld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pslld %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pslld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psllw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrad $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrad %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrad (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psraw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psraw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psraw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrld $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrld %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrld (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlq $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlw $1, %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psrlw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubsb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubsb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubsw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubsw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubusb %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubusb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubusw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubusw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - psubw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhbw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhbw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhdq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhdq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhwd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckhwd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpcklbw %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpcklbw (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckldq %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpckldq (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpcklwd %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - punpcklwd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pxor %mm0, %mm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - pxor (%rax), %mm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-movbe.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-movbe.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-movbe.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-movbe.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
movbe %cx, (%rax)
movbe (%rax), %cx
@@ -19,32 +19,44 @@ movbe (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 1.00 * movbew %cx, (%rax)
-# CHECK-NEXT: 2 6 0.50 * movbew (%rax), %cx
-# CHECK-NEXT: 1 1 1.00 * movbel %ecx, (%rax)
-# CHECK-NEXT: 2 6 0.50 * movbel (%rax), %ecx
-# CHECK-NEXT: 1 1 1.00 * movbeq %rcx, (%rax)
-# CHECK-NEXT: 2 6 0.50 * movbeq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 * movbew %cx, (%rax)
+# CHECK-NEXT: 1 5 0.50 * movbew (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 * movbel %ecx, (%rax)
+# CHECK-NEXT: 1 5 0.50 * movbel (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 * movbeq %rcx, (%rax)
+# CHECK-NEXT: 1 5 0.50 * movbeq (%rax), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 1.00 1.00 3.00 1.00 3.00 3.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 3.00 3.00 - - - 1.50 1.50 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 movbew %cx, (%rax)
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 movbew (%rax), %cx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 movbel %ecx, (%rax)
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 movbel (%rax), %ecx
-# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 movbeq %rcx, (%rax)
-# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 movbeq (%rax), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - movbew %cx, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - movbew (%rax), %cx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - movbel %ecx, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - movbel (%rax), %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - movbeq %rcx, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - movbeq (%rax), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
pclmulqdq $11, %xmm0, %xmm2
pclmulqdq $11, (%rax), %xmm2
@@ -13,24 +13,36 @@ pclmulqdq $11, (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
-# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
+# CHECK-NEXT: 5 12 1.00 pclmulqdq $11, %xmm0, %xmm2
+# CHECK-NEXT: 6 17 1.00 * pclmulqdq $11, (%rax), %xmm2
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 11.67 11.67 - 11.67 0.50 0.50
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 2.00 - 2.00 - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - 6.00 6.00 - 6.00 - - pclmulqdq $11, %xmm0, %xmm2
-# CHECK-NEXT: - - 5.67 5.67 - 5.67 0.50 0.50 pclmulqdq $11, (%rax), %xmm2
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - pclmulqdq $11, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - - pclmulqdq $11, (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
popcntw %cx, %cx
popcntw (%rax), %cx
@@ -19,32 +19,44 @@ popcntq (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 3 1.00 popcntw %cx, %cx
-# CHECK-NEXT: 2 9 1.00 * popcntw (%rax), %cx
-# CHECK-NEXT: 1 3 1.00 popcntl %eax, %ecx
-# CHECK-NEXT: 2 9 1.00 * popcntl (%rax), %ecx
-# CHECK-NEXT: 1 3 1.00 popcntq %rax, %rcx
-# CHECK-NEXT: 2 9 1.00 * popcntq (%rax), %rcx
+# CHECK-NEXT: 1 4 0.50 popcntw %cx, %cx
+# CHECK-NEXT: 1 8 0.50 * popcntw (%rax), %cx
+# CHECK-NEXT: 1 4 0.50 popcntl %eax, %ecx
+# CHECK-NEXT: 1 8 0.50 * popcntl (%rax), %ecx
+# CHECK-NEXT: 1 4 0.50 popcntq %rax, %rcx
+# CHECK-NEXT: 1 8 0.50 * popcntq (%rax), %rcx
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 6.00 - - 1.50 1.50
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 1.50 1.50 - - - 3.00 3.00 - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - 1.00 - - - - popcntw %cx, %cx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 popcntw (%rax), %cx
-# CHECK-NEXT: - - - 1.00 - - - - popcntl %eax, %ecx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 popcntl (%rax), %ecx
-# CHECK-NEXT: - - - 1.00 - - - - popcntq %rax, %rcx
-# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 popcntq (%rax), %rcx
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - popcntw %cx, %cx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - popcntw (%rax), %cx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - popcntl %eax, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - popcntl (%rax), %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - popcntq %rax, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - - popcntq (%rax), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s?rev=345463&r1=345462&r2=345463&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s Sat Oct 27 13:46:30 2018
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=bdver2 -instruction-tables < %s | FileCheck %s
prefetch (%rax)
prefetchw (%rax)
@@ -17,20 +17,32 @@ prefetchw (%rax)
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
# 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-NEXT: [0.0] - PdAGLU01
+# CHECK-NEXT: [0.1] - PdAGLU01
+# CHECK-NEXT: [1] - PdBranch
+# CHECK-NEXT: [2] - PdCount
+# CHECK-NEXT: [3] - PdDiv
+# CHECK-NEXT: [4] - PdEX0
+# CHECK-NEXT: [5] - PdEX1
+# CHECK-NEXT: [6] - PdFPCVT
+# CHECK-NEXT: [7.0] - PdFPFMA
+# CHECK-NEXT: [7.1] - PdFPFMA
+# CHECK-NEXT: [8.0] - PdFPMAL
+# CHECK-NEXT: [8.1] - PdFPMAL
+# CHECK-NEXT: [9] - PdFPMMA
+# CHECK-NEXT: [10] - PdFPSTO
+# CHECK-NEXT: [11] - PdFPU0
+# CHECK-NEXT: [12] - PdFPU1
+# CHECK-NEXT: [13] - PdFPU2
+# CHECK-NEXT: [14] - PdFPU3
+# CHECK-NEXT: [15] - PdFPXBR
+# CHECK-NEXT: [16] - PdMul
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - - - - 1.00 1.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16]
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
-# CHECK-NEXT: - - - - - - 0.50 0.50 prefetch (%rax)
-# CHECK-NEXT: - - - - - - 0.50 0.50 prefetchw (%rax)
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16] Instructions:
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - prefetch (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - prefetchw (%rax)
More information about the llvm-commits
mailing list