From daa566329cefacd551066da4325137eade0e4fa4 Mon Sep 17 00:00:00 2001 From: Julian Hammer Date: Fri, 17 Jan 2020 16:30:00 +0100 Subject: [PATCH 1/2] some more instructions (esp. AT&T naming) --- osaca/data/bdw.yml | 102 +- osaca/data/csx.yml | 121 +- osaca/data/hsw.yml | 88 + osaca/data/isa/x86.yml | 148 ++ osaca/data/ivb.yml | 88 + osaca/data/skx.yml | 4864 +--------------------------------------- osaca/data/snb.yml | 88 + 7 files changed, 671 insertions(+), 4828 deletions(-) diff --git a/osaca/data/bdw.yml b/osaca/data/bdw.yml index af2db83..56fdede 100644 --- a/osaca/data/bdw.yml +++ b/osaca/data/bdw.yml @@ -170,18 +170,6 @@ instruction_forms: port_pressure: [[3, '0156']] throughput: 0.75 uops: 3 -- name: '{store} SHRD' - operands: - - class: immediate - imd: int - - class: register - name: gpr - - class: register - name: gpr - latency: 3 - port_pressure: [[1, '1']] - throughput: 1.0 - uops: 1 - name: wait operands: [] latency: 1 @@ -222,6 +210,62 @@ instruction_forms: port_pressure: [[1, '06']] throughput: 0.5 uops: 1 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '0156'], [1, '06']] + throughput: 0.75 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: cmpps operands: - class: immediate @@ -681,18 +725,38 @@ instruction_forms: port_pressure: [[1, '23'], [1, [2D, 3D]]] throughput: 0.5 uops: 2 - - -- name: '{store} MOVDQA' +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd operands: - class: register name: xmm - class: register name: xmm - latency: 0 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: vcvtss2sd operands: - class: register diff --git a/osaca/data/csx.yml b/osaca/data/csx.yml index c6929c6..6a56b9c 100644 --- a/osaca/data/csx.yml +++ b/osaca/data/csx.yml @@ -209,6 +209,42 @@ instruction_forms: port_pressure: [[1, '01']] # uops.info (measured) throughput: 0.5 uops: 1 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '0156'], [1, '06']] + throughput: 0.75 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 - name: cmp operands: - class: register @@ -228,6 +264,26 @@ instruction_forms: port_pressure: [[1, '0156']] throughput: 0.25 uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 - name: cmppd operands: - class: immediate @@ -526,6 +582,38 @@ instruction_forms: throughput: 0.5 latency: 4.0 # 1"*"p01 port_pressure: [[1, '01']] +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '01']] + throughput: 1 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '01']] + throughput: 1 - name: vcvtsi2ss operands: - class: register @@ -627,39 +715,6 @@ instruction_forms: throughput: 0.5 latency: 4.0 # 1"*"p01 port_pressure: [[1, '05']] -- name: vpsrld # JH: assumed from SKX - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '0'], [1, '15']] - throughput: 1 -- name: VXORPS # JH: assumed from SKX - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 -- name: VXORPD # JH: assumed from SKX - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - name: wait operands: [] latency: 1 diff --git a/osaca/data/hsw.yml b/osaca/data/hsw.yml index e8b1853..1028d30 100644 --- a/osaca/data/hsw.yml +++ b/osaca/data/hsw.yml @@ -191,6 +191,62 @@ instruction_forms: port_pressure: [[1, '0156'], [1, '23']] throughput: 0.5 uops: 3 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '0156'], [1, '06']] + throughput: 0.75 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: cmpps operands: - class: immediate @@ -375,6 +431,38 @@ instruction_forms: port_pressure: [[1, '1']] # JH: according to uops.info throughput: 1.0 # JH: measured on phinally uops: 1 +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: vcvtss2sd operands: - class: register diff --git a/osaca/data/isa/x86.yml b/osaca/data/isa/x86.yml index f4f9cb9..423f275 100644 --- a/osaca/data/isa/x86.yml +++ b/osaca/data/isa/x86.yml @@ -353,6 +353,91 @@ instruction_forms: scale: "*" source: true destination: true + - name: cld + operands: [] + hidden_operands: + - class: "flag" + name: "DF" + source: false + destination: true + - name: cbtw + operands: [] + hidden_operands: + - class: "register" + name: "al" + source: true + destination: false + - class: "register" + name: "ax" + source: false + destination: true + - name: cwtl + operands: [] + hidden_operands: + - class: "register" + name: "ax" + source: true + destination: false + - class: "register" + name: "eax" + source: false + destination: true + - name: cwtd + operands: [] + hidden_operands: + - class: "register" + name: "ax" + source: true + destination: false + - class: "register" + name: "dx" + source: false + destination: true + - class: "register" + name: "ax" + source: false + destination: true + - name: cltd + operands: [] + hidden_operands: + - class: "register" + name: "eax" + source: true + destination: false + - class: "register" + name: "edx" + source: false + destination: true + - class: "register" + name: "eax" + source: false + destination: true + - name: cltq + operands: [] + hidden_operands: + - class: "register" + name: "eax" + source: true + destination: false + - class: "register" + name: "rax" + source: false + destination: true + - name: cqtq + operands: [] + hidden_operands: + - class: "register" + name: "rax" + source: true + destination: false + - class: "register" + name: "rdx" + source: false + destination: true + - class: "register" + name: "rax" + source: false + destination: true - name: cmova operands: - class: "register" @@ -2197,6 +2282,69 @@ instruction_forms: name: "PF" source: false destination: true + - name: cmpxchg + operands: + - class: "register" + name: "gpr" + source: true + destination: false + - class: "register" + name: "gpr" + source: true + destination: true + hidden_operands: + - class: "register" + name: "rax" + source: true + destination: true + - class: "flag" + name: "ZF" + source: true + destination: true + - name: cmpxchg + operands: + - class: "memory" + base: "*" + offset: "*" + index: "*" + scale: "*" + source: true + destination: false + - class: "register" + name: "gpr" + source: true + destination: true + hidden_operands: + - class: "register" + name: "rax" + source: true + destination: true + - class: "flag" + name: "ZF" + source: true + destination: true + - name: cmpxchg + operands: + - class: "register" + name: "gpr" + source: true + destination: false + - class: "memory" + base: "*" + offset: "*" + index: "*" + scale: "*" + source: true + destination: true + hidden_operands: + - class: "register" + name: "rax" + source: true + destination: true + - class: "flag" + name: "ZF" + source: true + destination: true - name: dec operands: - class: "register" diff --git a/osaca/data/ivb.yml b/osaca/data/ivb.yml index e9be500..47f94de 100644 --- a/osaca/data/ivb.yml +++ b/osaca/data/ivb.yml @@ -175,6 +175,62 @@ instruction_forms: port_pressure: [[2, '015']] throughput: 0.6666666666666666 uops: 3 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '015'], [1, '05']] + throughput: 0.8333333333333333 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '05']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '05']] + throughput: 0.5 + uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: cmpps operands: - class: immediate @@ -359,6 +415,38 @@ instruction_forms: port_pressure: [[1, '1']] # JH: according to uops.info throughput: 1.0 # JH: measured on phinally uops: 1 +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: vcvtss2sd operands: - class: register diff --git a/osaca/data/skx.yml b/osaca/data/skx.yml index 568c288..5addb01 100644 --- a/osaca/data/skx.yml +++ b/osaca/data/skx.yml @@ -212,6 +212,62 @@ instruction_forms: port_pressure: [[1, '0156'], [1, '23']] throughput: 0.5 uops: 3 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '0156'], [1, '06']] + throughput: 0.75 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '06']] + throughput: 0.5 + uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 - name: cmppd operands: - class: immediate @@ -396,6 +452,38 @@ instruction_forms: port_pressure: [[1, '01']] # JH: according to uops.info throughput: 0.5 # JH: measured on skylakesp2 uops: 1 +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '01']] + throughput: 0.5 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 4 + port_pressure: [[1, '01']] + throughput: 0.5 - name: vpsrld operands: - class: register @@ -431,4782 +519,6 @@ instruction_forms: port_pressure: [[1, '01']] throughput: 1.0 uops: 1 -- name: '{evex} VPMULHUW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULHUW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULUDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULUDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLDQ' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSLLDQ' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMULHRSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULHRSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKLBW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLBW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCVTPH2PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 -- name: '{evex} VCVTPH2PS' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 7 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 -- name: '{evex} VPERMQ' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD213SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPERMILPS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPS' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD213SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB213SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMAXSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPCMPEQQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPAVGW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPAVGW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPCMPEQD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPEXTRW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '0'], [1, '5']] - throughput: 1.0 - uops: 2 -- name: '{evex} VPMAXSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXSD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLVQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLVQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMULSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VANDPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VANDPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPMAXSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLVD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLVD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VANDPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VANDPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VMULSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMULPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMULPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLDQ' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSRLDQ' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFHW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFHW' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VORPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VORPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VMAXSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPACKSSDW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPACKSSDW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSQRTSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 19 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VORPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VORPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VEXTRACTPS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '0'], [1, '5']] - throughput: 1.0 - uops: 2 -- name: '{evex} VSQRTSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 13 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKHPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKHPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCOMISD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 3 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCOMISS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 3 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSRAD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRAD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSHUFD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSRAW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRAW' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSHUFB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPGTB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPGTB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VDIVPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 12 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VDIVPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 12 - port_pressure: [[1, '0'], [5, [0DV]]] - throughput: 5.0 - uops: 1 -- name: '{evex} VCMPSS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFLW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSHUFLW' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFMSUB132SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCMPSD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSLLQ' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLQ' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLW' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB132SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB231SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSHUFPD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSHUFPD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSUBSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSQRTPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 13 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSQRTPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 13 - port_pressure: [[1, '0'], [6, [0DV]]] - throughput: 6.0 - uops: 1 -- name: '{evex} VCVTPS2DQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTPS2DQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSQRTPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 19 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSQRTPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 19 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSUBSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSHUFPS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSHUFPS' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKHDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKHDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCVTPD2DQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTPD2DQ' - operands: - - class: register - name: ymm - - class: register - name: xmm - latency: 7 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTTSS2SI' - operands: - - class: register - name: xmm - - class: register - name: gpr - latency: 8 - port_pressure: [[1, '0'], [1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 3 -- name: '{evex} VFMSUB231SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD231SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMULPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMULPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD231SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VINSERTPS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPALIGNR' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPALIGNR' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPADDSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMAXPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMAXPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPACKUSWB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPACKUSWB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VMAXPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMAXPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKHQDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKHQDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPABSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPABSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUB213SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPABSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPABSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDUSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDUSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDUSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDUSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VUNPCKHPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKHPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTD' - operands: - - class: register - name: gpr - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTD' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTD' - operands: - - class: register - name: gpr - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFMADD231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULHW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULHW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VXORPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VXORPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPERMILPD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMILPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTQ' - operands: - - class: register - name: gpr - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTQ' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTQ' - operands: - - class: register - name: gpr - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMADDUBSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMADDUBSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VXORPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VXORPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VFMADD132SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VANDNPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VANDNPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VFMADD132SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRAVD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRAVD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTTPS2DQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTTPS2DQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VDIVSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 12 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD231SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VDIVSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 15 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD231SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCMPPS' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCMPPS' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCMPPD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCMPPD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VSUBPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSUBPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VANDNPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VANDNPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VCVTSS2SI' - operands: - - class: register - name: xmm - - class: register - name: gpr - latency: 8 - port_pressure: [[1, '0'], [1, '015']] - throughput: 1.3333333333333333 - uops: 3 -- name: '{evex} VMINSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSUBPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VSUBPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMINSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBUSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBUSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBUSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBUSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPABSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPABSD' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPADDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPADDD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VFNMSUB132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPEXTRB' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '0'], [1, '5']] - throughput: 1.0 - uops: 2 -- name: '{evex} VPEXTRD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '0'], [1, '5']] - throughput: 1.0 - uops: 2 -- name: '{evex} VPEXTRQ' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '0'], [1, '5']] - throughput: 1.0 - uops: 2 -- name: '{evex} VADDPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VADDPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB132SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB132SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VADDPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VADDPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULLD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 10 - port_pressure: [[2, '01']] - throughput: 1.0 - uops: 2 -- name: '{evex} VPMULLD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 10 - port_pressure: [[2, '01']] - throughput: 1.0 - uops: 2 -- name: '{evex} VFNMSUB231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VUCOMISS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 3 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMULLW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMULLW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VUCOMISD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 3 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMSUB231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKLWD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLWD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMSUB213SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD213SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPACKUSDW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPACKUSDW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMAXUD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXUD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD213SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXUW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXUW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VDIVPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 15 - port_pressure: [[1, '0']] - throughput: 1.0 - uops: 1 -- name: '{evex} VDIVPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 15 - port_pressure: [[1, '0'], [8, [0DV]]] - throughput: 8.0 - uops: 1 -- name: '{evex} VPSRLW' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLW' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLQ' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLQ' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPBROADCASTB' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTB' - operands: - - class: register - name: gpr - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTB' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTB' - operands: - - class: register - name: gpr - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLQDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLQDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD132SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSRLD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD132SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VBROADCASTSD' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPEQW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VBROADCASTSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VBROADCASTSS' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VMINPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMINPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTDQ2PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTDQ2PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPBROADCASTW' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTW' - operands: - - class: register - name: gpr - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTW' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPBROADCASTW' - operands: - - class: register - name: gpr - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLDQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKLDQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCVTDQ2PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 -- name: '{evex} VCVTDQ2PD' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 7 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 -- name: '{evex} VMINPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VMINPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VPSUBW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '015']] - throughput: 0.3333333333333333 - uops: 1 -- name: '{evex} VFMSUBADD132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSADBW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSADBW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFMSUBADD132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLD' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPAVGB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPAVGB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTSD2SI' - operands: - - class: register - name: xmm - - class: register - name: gpr - latency: 7 - port_pressure: [[1, '0'], [1, '015']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VFNMADD231PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD231PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMSUBADD231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD231PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD231PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBSB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBSB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB231SS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMSUB231SD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINUW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINUW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPERMPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKLPS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKLPS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMINUB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINUB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINUD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMINUD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VUNPCKLPD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VUNPCKLPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMPD' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPERMPD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 3 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFMADDSUB213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKHBW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKHBW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VCVTTPD2DQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTTPD2DQ' - operands: - - class: register - name: ymm - - class: register - name: xmm - latency: 7 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VFMADD213PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD213PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPCMPGTD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPGTD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPMADDWD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMADDWD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPCMPGTQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPGTQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFMADD213PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADD213PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPCMPGTW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPCMPGTW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: gpr - latency: 4 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPSUBSW' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSUBSW' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXUB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPMAXUB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFMADDSUB132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD132PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD132PD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPUNPCKHWD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPUNPCKHWD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VFNMADD132PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VFNMADD132PS' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTTSD2SI' - operands: - - class: register - name: xmm - - class: register - name: gpr - latency: 7 - port_pressure: [[1, '0'], [1, '015']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTPD2PS' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTPD2PS' - operands: - - class: register - name: ymm - - class: register - name: xmm - latency: 7 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VPSLLVD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLVD' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VADDSD' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTPS2PH' - operands: - - class: immediate - imd: int - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VCVTPS2PH' - operands: - - class: immediate - imd: int - - class: register - name: ymm - - class: register - name: xmm - latency: 7 - port_pressure: [[1, '015'], [1, '5']] - throughput: 1.3333333333333333 - uops: 2 -- name: '{evex} VPACKSSWB' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VPACKSSWB' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '5']] - throughput: 1.0 - uops: 1 -- name: '{evex} VADDSS' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 4 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLVQ' - operands: - - class: register - name: xmm - - class: register - name: xmm - - class: register - name: xmm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VPSLLVQ' - operands: - - class: register - name: ymm - - class: register - name: ymm - - class: register - name: ymm - latency: 1 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 1 -- name: '{evex} VCVTPS2PD' - operands: - - class: register - name: xmm - - class: register - name: xmm - latency: 5 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 -- name: '{evex} VCVTPS2PD' - operands: - - class: register - name: xmm - - class: register - name: ymm - latency: 7 - port_pressure: [[1, '01']] - throughput: 0.5 - uops: 2 - name: SLDT # model_importer.py SKX operands: # model_importer.py SKX - class: memory # model_importer.py SKX diff --git a/osaca/data/snb.yml b/osaca/data/snb.yml index 4940820..0701a58 100644 --- a/osaca/data/snb.yml +++ b/osaca/data/snb.yml @@ -62,6 +62,62 @@ instruction_forms: port_pressure: [] throughput: 1 uops: 0 +- name: cbtw # AT&T version of CBW + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cwtl # AT&T version of CWDE + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cwtd # AT&T version of CWD + operands: [] + latency: 2 + port_pressure: [[1, '015'], [1, '05']] + throughput: 0.8333333333333333 + uops: 2 +- name: cltd # AT&T version of CDQ + operands: [] + latency: 1 + port_pressure: [[1, '05']] + throughput: 0.5 + uops: 1 +- name: cltq # AT&T version of CDQE + operands: [] + latency: 1 + port_pressure: [[1, '015']] + throughput: 0.3333333333333333 + uops: 1 +- name: cqtq # AT&T version of CQO + operands: [] + latency: 1 + port_pressure: [[1, '05']] + throughput: 0.5 + uops: 1 +- name: [cmpeqsd, cmpltsd, cmplesd, cmpunordsd, cmpneqsd, cmpnltsd, cmpnlesd, cmpordsd] + # same as CMPSD xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [cmpeqss, cmpltss, cmpless, cmpunordss, cmpneqss, cmpnltss, cmpnless, cmpordss] + # same as CMPSS xmm1, xmm2, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: cmpeqps # same as CMPPS xmm1, xmm2, 0 operands: - class: register @@ -222,6 +278,38 @@ instruction_forms: port_pressure: [[1, '1']] # JH: according to uops.info throughput: 1.0 # JH: measured on phinally uops: 1 +- name: [vcmpeqsd, vcmpltsd, vcmplesd, vcmpunordsd, vcmpneqsd, vcmpnltsd, vcmpnlesd, vcmpordsd, + vcmpeq_uqsd, vcmpngesd, vcmpngtsd, vcmpfalsesd, vcmpneq_oqsd, vcmpgesd, vcmpgtsd, + vcmptruesd, vcmpeq_ossd, vcmplt_oqsd, vcmple_oqsd, vcmpunord_ssd, vcmpneq_ussd, + vcmpnlt_uqsd, vcmpnle_uqsd, vcmpord_ssd, vcmpeq_ussd, vcmpnge_uqsd, vcmpngt_uqsd, + vcmpfalse_ossd, vcmpneq_ossd, vcmpge_oqsd, vcmpgt_oqsd, vcmptrue_ussd] + # same as VCMPSD xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 +- name: [vcmpeqss, vcmpltss, vcmpless, vcmpunordss, vcmpneqss, vcmpnltss, vcmpnless, vcmpordss, + vcmpeq_uqss, vcmpngess, vcmpngtss, vcmpfalsess, vcmpneq_oqss, vcmpgess, vcmpgtss, + vcmptruess, vcmpeq_osss, vcmplt_oqss, vcmple_oqss, vcmpunord_sss, vcmpneq_usss, + vcmpnlt_uqss, vcmpnle_uqss, vcmpord_sss, vcmpeq_usss, vcmpnge_uqss, vcmpngt_uqss, + vcmpfalse_osss, vcmpneq_osss, vcmpge_oqss, vcmpgt_oqss, vcmptrue_usss] + # same as VCMPSS xmm, xmm, xmm, imd + operands: + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '1']] + throughput: 1 - name: vpsrld operands: - class: register From 4eea686e8b03359eec50ec07a1475f3ec4fb3720 Mon Sep 17 00:00:00 2001 From: Julian Hammer Date: Fri, 17 Jan 2020 16:47:55 +0100 Subject: [PATCH 2/2] added movabs --- osaca/data/bdw.yml | 11 +++++++++++ osaca/data/csx.yml | 11 +++++++++++ osaca/data/generate_mov_entries.py | 2 ++ osaca/data/hsw.yml | 11 +++++++++++ osaca/data/ivb.yml | 11 +++++++++++ osaca/data/skx.yml | 11 +++++++++++ osaca/data/snb.yml | 12 ++++++++++++ 7 files changed, 69 insertions(+) diff --git a/osaca/data/bdw.yml b/osaca/data/bdw.yml index 56fdede..d78013f 100644 --- a/osaca/data/bdw.yml +++ b/osaca/data/bdw.yml @@ -28564,6 +28564,17 @@ instruction_forms: throughput: 0.25 # ./generate_mov_entries.py bdw uops: 1 # ./generate_mov_entries.py bdw # ./generate_mov_entries.py bdw +- name: movabs # ./generate_mov_entries.py bdw + operands: # ./generate_mov_entries.py bdw + - class: immediate # ./generate_mov_entries.py bdw + imd: int # ./generate_mov_entries.py bdw + - class: register # ./generate_mov_entries.py bdw + name: gpr # ./generate_mov_entries.py bdw + latency: 1 # ./generate_mov_entries.py bdw + port_pressure: [[1, '0156']] # ./generate_mov_entries.py bdw + throughput: 0.25 # ./generate_mov_entries.py bdw + uops: 1 # ./generate_mov_entries.py bdw + # ./generate_mov_entries.py bdw - name: mov # with store, simple AGU # ./generate_mov_entries.py bdw operands: # ./generate_mov_entries.py bdw - class: immediate # ./generate_mov_entries.py bdw diff --git a/osaca/data/csx.yml b/osaca/data/csx.yml index 6a56b9c..8563b69 100644 --- a/osaca/data/csx.yml +++ b/osaca/data/csx.yml @@ -82658,6 +82658,17 @@ instruction_forms: throughput: 0.25 # ./generate_mov_entries.py csx uops: 1 # ./generate_mov_entries.py csx # ./generate_mov_entries.py csx +- name: movabs # ./generate_mov_entries.py csx + operands: # ./generate_mov_entries.py csx + - class: immediate # ./generate_mov_entries.py csx + imd: int # ./generate_mov_entries.py csx + - class: register # ./generate_mov_entries.py csx + name: gpr # ./generate_mov_entries.py csx + latency: 1 # ./generate_mov_entries.py csx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py csx + throughput: 0.25 # ./generate_mov_entries.py csx + uops: 1 # ./generate_mov_entries.py csx + # ./generate_mov_entries.py csx - name: mov # with store, simple AGU # ./generate_mov_entries.py csx operands: # ./generate_mov_entries.py csx - class: immediate # ./generate_mov_entries.py csx diff --git a/osaca/data/generate_mov_entries.py b/osaca/data/generate_mov_entries.py index c24a4e9..2a11886 100755 --- a/osaca/data/generate_mov_entries.py +++ b/osaca/data/generate_mov_entries.py @@ -148,6 +148,7 @@ snb_mov_instructions = [ ('mov mem gpr', ('', 0)), ('mov imd gpr', ('1*p015', 1)), ('mov imd mem', ('', 0)), + ('movabs imd gpr', ('1*p015', 1)), # AT&T version # https://www.felixcloutier.com/x86/movapd ('movapd xmm xmm', ('1*p5', 1)), @@ -533,6 +534,7 @@ hsw_mov_instructions = list(OrderedDict(ivb_mov_instructions + [ # https://www.felixcloutier.com/x86/mov ('mov imd gpr', ('1*p0156', 1)), ('mov gpr gpr', ('1*p0156', 1)), + ('movabs imd gpr', ('1*p0156', 1)), # AT&T version # https://www.felixcloutier.com/x86/movbe ('movbe gpr mem', ('1*p15', 6)), diff --git a/osaca/data/hsw.yml b/osaca/data/hsw.yml index 1028d30..5789252 100644 --- a/osaca/data/hsw.yml +++ b/osaca/data/hsw.yml @@ -28376,6 +28376,17 @@ instruction_forms: throughput: 0.25 # ./generate_mov_entries.py hsw uops: 1 # ./generate_mov_entries.py hsw # ./generate_mov_entries.py hsw +- name: movabs # ./generate_mov_entries.py hsw + operands: # ./generate_mov_entries.py hsw + - class: immediate # ./generate_mov_entries.py hsw + imd: int # ./generate_mov_entries.py hsw + - class: register # ./generate_mov_entries.py hsw + name: gpr # ./generate_mov_entries.py hsw + latency: 1 # ./generate_mov_entries.py hsw + port_pressure: [[1, '0156']] # ./generate_mov_entries.py hsw + throughput: 0.25 # ./generate_mov_entries.py hsw + uops: 1 # ./generate_mov_entries.py hsw + # ./generate_mov_entries.py hsw - name: mov # with store, simple AGU # ./generate_mov_entries.py hsw operands: # ./generate_mov_entries.py hsw - class: immediate # ./generate_mov_entries.py hsw diff --git a/osaca/data/ivb.yml b/osaca/data/ivb.yml index 47f94de..fd1dad0 100644 --- a/osaca/data/ivb.yml +++ b/osaca/data/ivb.yml @@ -21089,6 +21089,17 @@ instruction_forms: throughput: 0.0 # ./generate_mov_entries.py ivb uops: 0 # ./generate_mov_entries.py ivb # ./generate_mov_entries.py ivb +- name: movabs # ./generate_mov_entries.py ivb + operands: # ./generate_mov_entries.py ivb + - class: immediate # ./generate_mov_entries.py ivb + imd: int # ./generate_mov_entries.py ivb + - class: register # ./generate_mov_entries.py ivb + name: gpr # ./generate_mov_entries.py ivb + latency: 0 # ./generate_mov_entries.py ivb + port_pressure: [] # ./generate_mov_entries.py ivb + throughput: 0.0 # ./generate_mov_entries.py ivb + uops: 0 # ./generate_mov_entries.py ivb + # ./generate_mov_entries.py ivb - name: mov # with store # ./generate_mov_entries.py ivb operands: # ./generate_mov_entries.py ivb - class: immediate # ./generate_mov_entries.py ivb diff --git a/osaca/data/skx.yml b/osaca/data/skx.yml index 5addb01..eab82d9 100644 --- a/osaca/data/skx.yml +++ b/osaca/data/skx.yml @@ -82426,6 +82426,17 @@ instruction_forms: throughput: 0.25 # ./generate_mov_entries.py skx uops: 1 # ./generate_mov_entries.py skx # ./generate_mov_entries.py skx +- name: movabs # ./generate_mov_entries.py skx + operands: # ./generate_mov_entries.py skx + - class: immediate # ./generate_mov_entries.py skx + imd: int # ./generate_mov_entries.py skx + - class: register # ./generate_mov_entries.py skx + name: gpr # ./generate_mov_entries.py skx + latency: 1 # ./generate_mov_entries.py skx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py skx + throughput: 0.25 # ./generate_mov_entries.py skx + uops: 1 # ./generate_mov_entries.py skx + # ./generate_mov_entries.py skx - name: mov # with store, simple AGU # ./generate_mov_entries.py skx operands: # ./generate_mov_entries.py skx - class: immediate # ./generate_mov_entries.py skx diff --git a/osaca/data/snb.yml b/osaca/data/snb.yml index 0701a58..863c5ad 100644 --- a/osaca/data/snb.yml +++ b/osaca/data/snb.yml @@ -20810,6 +20810,18 @@ instruction_forms: uops: 2 # ./generate_mov_entries.py snb # ./generate_mov_entries.py snb - name: mov # ./generate_mov_entries.py snb + operands: # ./generate_mov_entries.py snb + - class: immediate # ./generate_mov_entries.py snb + imd: int # ./generate_mov_entries.py snb + - class: register # ./generate_mov_entries.py snb + name: gpr # ./generate_mov_entries.py snb + latency: 1 # ./generate_mov_entries.py snb + port_pressure: [[1, '015']] # ./generate_mov_entries.py snb + throughput: 0.3333333333333333 # ./generate_mov_entries.py snb + uops: 1 # ./generate_mov_entries.py snb + + # ./generate_mov_entries.py snb +- name: movabs # ./generate_mov_entries.py snb operands: # ./generate_mov_entries.py snb - class: immediate # ./generate_mov_entries.py snb imd: int # ./generate_mov_entries.py snb