Files
OSACA/osaca/data/csx.yml
2020-01-14 10:51:20 +01:00

1967 lines
38 KiB
YAML

osaca_version: 0.3.1.dev1
micro_architecture: Cascade Lake SP
arch_code: CSX
isa: x86
ROB_size: 224
retired_uOps_per_cycle: 4
scheduler_size: 97
hidden_loads: false
load_latency: {gpr: 4.0, mm: 4.0, xmm: 4.0, ymm: 4.0, zmm: 4.0}
load_throughput:
- {base: gpr, offset: ~, index: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: gpr, offset: ~, index: gpr, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: gpr, offset: ~, index: gpr, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: gpr, offset: imd, index: gpr, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: gpr, offset: imd, index: gpr, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: gpr, offset: imd, index: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: ~, offset: imd, index: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: ~, offset: ~, index: gpr, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: ~, offset: ~, index: gpr, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: ~, offset: imd, index: gpr, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
- {base: ~, offset: imd, index: gpr, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]}
load_throughput_default: [[1, '23'], [1, ['2D', '3D']]]
ports: ['0', 0DV, '1', '2', 2D, '3', 3D, '4', '5', '6', '7']
port_model_scheme: |
┌------------------------------------------------------------------------┐
| 97 entry unified scheduler |
└------------------------------------------------------------------------┘
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
┌-------┐ ┌-------┐ ┌-----┐ ┌-----┐ ┌-----┐ ┌-------┐ ┌--------┐ ┌-----┐
| ALU | | ALU | | LD | | LD | | ST | | ALU | | ALU & | | AGU |
└-------┘ └-------┘ └-----┘ └-----┘ └-----┘ └-------┘ | Shift | └-----┘
┌-------┐ ┌-------┐ ┌-----┐ ┌-----┐ ┌-------┐ └--------┘
| 2ND | | Fast | | AGU | | AGU | | Fast | ┌--------┐
| BRANCH| | LEA | └-----┘ └-----┘ | LEA | | BRANCH |
└-------┘ └-------┘ └-------┘ └--------┘
┌-------┐ ┌-------┐ ┌-------┐
|AVX DIV| |AVX FMA| | AVX |
└-------┘ └-------┘ | SHUF |
┌-------┐ ┌-------┐ └-------┘
|AVX FMA| |AVX MUL| ┌-------┐
└-------┘ └-------┘ |AVX-512|
┌-------┐ ┌-------┐ | FMA |
|AVX MUL| |AVX ADD| └-------┘
└-------┘ └-------┘ ┌-------┐
┌-------┐ ┌-------┐ |AVX-512|
|AVX ADD| |AVX ALU| | ADD |
└-------┘ └-------┘ └-------┘
┌-------┐ ┌-------┐ ┌-------┐
|AVX ALU| | AVX | |AVX-512|
└-------┘ | Shift | | MUL |
┌-------┐ └-------┘ └-------┘
| AVX | ┌-------┐ ┌-------┐
| Shift | | Slow | |AVX-512|
└-------┘ | LEA | | ALU |
┌-------┐ └-------┘ └-------┘
| VNNI | ┌-------┐
└-------┘ | VNNI |
└-------┘
instruction_forms:
- name: LEA
operands:
- class: memory
base: gpr
offset: ~
index: ~
scale: 1
- class: register
name: gpr
latency: 1.0 # JH: measured on casclakesp2
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: LEA
operands:
- class: memory
base: gpr
offset: ~
index: gpr
scale: "*"
- class: register
name: gpr
latency: 1.0 # JH: measured on casclakesp2
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: LEA
operands:
- class: memory
base: gpr
offset: imd
index: gpr
scale: "*"
- class: register
name: gpr
latency: 3.0 # JH: measured on casclakesp2
port_pressure: [[1, '1']] # according to uops.info from SKX
throughput: 1.0 # JH: measured on casclakesp2
uops: 1
- name: LEA
operands:
- class: memory
base: gpr
offset: imd
index: ~
scale: 1
- class: register
name: gpr
latency: 1.0 # JH: measured on casclakesp2
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: LEA
operands:
- class: memory
base: ~
offset: imd
index: ~
scale: 1
- class: register
name: gpr
latency: 1.0
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5
uops: 1
- name: LEA
operands:
- class: memory
base: ~
offset: ~
index: gpr
scale: "*"
- class: register
name: gpr
latency: 1.0 # JH: measured on casclakesp2
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: LEA
operands:
- class: memory
base: ~
offset: imd
index: gpr
scale: "*"
- class: register
name: gpr
latency: 1.0 # JH: measured on casclakesp2
port_pressure: [[1, '15']] # according to uops.info from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: BT
operands:
- class: immediate
imd: int
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: could not measure; according to uops.info SKX
uops: 1
- name: BT
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: BTS
operands:
- class: immediate
imd: int
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: BTS
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: BSWAP
operands:
- class: register
name: gpr
latency: 2
port_pressure: [[1, '06'], [1, '15']] # JH: assumed from SKX
throughput: 0.5 # JH: could not measure; according to uops.info SKX
uops: 2
- name: BSR
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 3
port_pressure: [[1, '1']] # JH: assumed from SKX
throughput: 1.0 # JH: measured on casclakesp2
uops: 1
- name: BLSR
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '15']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: BSF
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 3
port_pressure: [[1, '1']] # JH: assumed from SKX
throughput: 1.0 # JH: measured on casclakesp2
uops: 1
- name: ANDNPD
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 1
port_pressure: [[1, '015']] # JH: assumedfrom SKX
throughput: 0.3333333333333333 # JH: measured on casclakesp2
uops: 1
- name: ANDNPS
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 1
port_pressure: [[1, '015']] # JH: assumedfrom SKX
throughput: 0.3333333333333333 # JH: measured on casclakesp2
uops: 1
- name: ANDPS
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 1
port_pressure: [[1, '015']] # JH: assumed from SKX
throughput: 0.3333333333333333 # JH: measured on casclakesp2
uops: 1
- name: ANDPD
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 1
port_pressure: [[1, '015']] # JH: assumed from SKX
throughput: 0.3333333333333333 # JH: measured on casclakesp2
uops: 1
- name: AND # JH: assumed from SKX
operands:
- class: immediate
imd: int
- class: register
name: gpr
latency: 1
port_pressure: [[1, '0156']] # JH: assumed from SKX
throughput: 0.25 # JH: measured on casclakesp2
uops: 1
- name: AND
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '0156']] # JH: assumed from SKX
throughput: 0.25 # JH: measured on casclakesp2
uops: 1
- name: ANDN
operands:
- class: register
name: gpr
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '15']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: ADC
operands:
- class: immediate
imd: int
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: ADC
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 1
port_pressure: [[1, '06']] # JH: assumed from SKX
throughput: 0.5 # JH: measured on casclakesp2
uops: 1
- name: addsd
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: addss
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: add
operands:
- class: immediate
imd: int
- class: register
name: gpr
throughput: 0.25
latency: 1.0 # 1"*"p0156
port_pressure: [[1, '0156']]
- name: add
operands:
- class: register
name: gpr
- class: register
name: gpr
throughput: 0.25
latency: 1.0 # 1"*"p0156
port_pressure: [[1, '0156']]
- name: addpd # JH: copied from SKX
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 4
port_pressure: [[1, '01']] # uops.info (measured)
throughput: 0.5
uops: 1
- name: addps # JH: measured
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 4
port_pressure: [[1, '01']] # uops.info (measured)
throughput: 0.5
uops: 1
- name: cmp
operands:
- class: register
name: gpr
- class: register
name: gpr
throughput: 0.25
latency: 1.0 # 1"*"p0156
port_pressure: [[1, '0156']]
- name: inc
operands:
- class: register
name: gpr
throughput: 0.25
latency: 1.0 # 1"*"p0156
port_pressure: [[1, '0156']]
- name: ja
operands:
- class: identifier
throughput: 0.0
latency: 0.0
port_pressure: []
- name: jb
operands:
- class: identifier
throughput: 0.0
latency: 0.0
port_pressure: []
- name: jne
operands:
- class: identifier
throughput: 0.0
latency: 0.0
port_pressure: []
- name: mulsd
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: mulss
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: rcpss
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 1.0
latency: 4.0
port_pressure: ~
- name: sqrtsd
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 6.0
latency: 22.0 # 1"*"p0+6"*"p0DV
port_pressure: [[1, '0'], [6.0, [0DV]]]
- name: sqrtss
operands:
- class: register
name: xmm
- class: register
name: xmm
throughput: 3.0
latency: 16.0 # 1"*"p0+3"*"p0DV
port_pressure: [[1, '0'], [3.0, [0DV]]]
- name: subq
operands:
- class: immediate
imd: int
- class: register
name: gpr
throughput: 0.25
latency: 1.0 # 1"*"p0156
port_pressure: [[1, '0156']]
- name: vaddpd
operands:
- class: register
name: ymm
- class: register
name: ymm
- class: register
name: ymm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vaddpd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vaddsd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vaddss
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vdivsd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 4.0
latency: 14.0 # 1"*"p0+4"*"p0DV
port_pressure: [[1, '0'], [4.0, [0DV]]]
- name: vdivss
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 3.0
latency: 11.0 # 1"*"p0+3"*"p0DV
port_pressure: [[1, '0'], [3.0, [0DV]]]
- name: vfmadd213pd
operands:
- class: register
name: ymm
- class: register
name: ymm
- class: register
name: ymm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vfmadd132pd
operands:
- class: register
name: ymm
- class: register
name: ymm
- class: register
name: ymm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vfmadd231pd
operands:
- class: register
name: ymm
- class: register
name: ymm
- class: register
name: ymm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vfmadd132pd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vfmadd213pd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vfmadd231pd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vmulsd
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vmulss
operands:
- class: register
name: xmm
- class: register
name: xmm
- class: register
name: xmm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: vmulpd
operands:
- class: register
name: ymm
- class: register
name: ymm
- class: register
name: ymm
throughput: 0.5
latency: 4.0 # 1"*"p01
port_pressure: [[1, '01']]
- name: mov
operands:
- class: immediate
imd: int
- class: register
name: gpr
latency: 1 # according to agner fog (SKX)
port_pressure: [[1, '0156']] # according to agner fog (SKX)
throughput: 0.25 # according to agner fog (SKX)
uops: 1
- name: mov
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: mov # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: gpr
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: mov # with store, simple AGU
operands:
- class: register
name: gpr
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: mov # with store, complex AGU
operands:
- class: register
name: gpr
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movabs
operands:
- class: register
name: gpr
- class: register
name: gpr
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movabs # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: gpr
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movabs # with store, simple AGU
operands:
- class: register
name: gpr
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movabs # with store, complex AGU
operands:
- class: register
name: gpr
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movapd
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movapd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movapd # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movapd # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movaps
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movaps # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movaps # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movaps # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movdqa
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movdqa # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movdqa # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movdqa # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movdqu
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movdqu # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movdqu # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movdqu # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movsd
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movsd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movsd # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movsd # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movss
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movss # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movss # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movss # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movupd
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movupd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movupd # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movupd # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movups
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movups # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movups # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movups # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movd
operands:
- class: register
name: mm
- class: register
name: mm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: mm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movd # with store, simple AGU
operands:
- class: register
name: mm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movd # with store, complex AGU
operands:
- class: register
name: mm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movd
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movd # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movd # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movq
operands:
- class: register
name: mm
- class: register
name: mm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movq # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: mm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movq # with store, simple AGU
operands:
- class: register
name: mm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movq # with store, complex AGU
operands:
- class: register
name: mm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: movq
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: movq # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: movq # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: movq # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovapd
operands:
- class: register
name: ymm
- class: register
name: ymm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovapd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: ymm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovapd # with store, simple AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovapd # with store, complex AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovapd
operands:
- class: register
name: zmm
- class: register
name: zmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovapd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: zmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovapd # with store, simple AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovapd # with store, complex AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovaps
operands:
- class: register
name: ymm
- class: register
name: ymm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovaps # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: ymm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovaps # with store, simple AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovaps # with store, complex AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovaps
operands:
- class: register
name: zmm
- class: register
name: zmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovaps # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: zmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovaps # with store, simple AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovaps # with store, complex AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqa
operands:
- class: register
name: ymm
- class: register
name: ymm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovdqa # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: ymm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovdqa # with store, simple AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqa # with store, complex AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqa
operands:
- class: register
name: zmm
- class: register
name: zmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovdqa # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: zmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovdqa # with store, simple AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqa # with store, complex AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqu
operands:
- class: register
name: ymm
- class: register
name: ymm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovdqu # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: ymm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovdqu # with store, simple AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqu # with store, complex AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqu
operands:
- class: register
name: zmm
- class: register
name: zmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovdqu # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: zmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovdqu # with store, simple AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovdqu # with store, complex AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovupd
operands:
- class: register
name: ymm
- class: register
name: ymm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovupd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: ymm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovupd # with store, simple AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovupd # with store, complex AGU
operands:
- class: register
name: ymm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovups
operands:
- class: register
name: zmm
- class: register
name: zmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovups # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: zmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovups # with store, simple AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovups # with store, complex AGU
operands:
- class: register
name: zmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovd
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovd # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovd # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovd # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovq
operands:
- class: register
name: xmm
- class: register
name: xmm
latency: 0.0
port_pressure: []
throughput: 0.0
uops: 0
- name: vmovq # with load
operands:
- class: memory
base: "*"
offset: "*"
index: "*"
scale: "*"
- class: register
name: xmm
latency: 4.0
port_pressure: [[1, '23'], [1, [2D, 3D]]]
throughput: 0.5
uops: 2
- name: vmovq # with store, simple AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: ~
scale: "*"
latency: 0
port_pressure: [[1, '237'], [1, '4']]
throughput: 1.0
uops: 2
- name: vmovq # with store, complex AGU
operands:
- class: register
name: xmm
- class: memory
base: "*"
offset: "*"
index: gpr
scale: "*"
latency: 0
port_pressure: [[1, '23'], [1, '4']]
throughput: 1.0
uops: 2