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