mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2025-12-16 09:00:05 +01:00
some more instructions (esp. AT&T naming)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
4864
osaca/data/skx.yml
4864
osaca/data/skx.yml
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user