mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-05 02:30:08 +01:00
592 lines
20 KiB
YAML
592 lines
20 KiB
YAML
osaca_version: 0.3.0
|
|
micro_architecture: "Cascade Lake SP"
|
|
arch_code: "CSX"
|
|
isa: "x86"
|
|
ROB_size: 224
|
|
retired_uOps_per_cycle: 4
|
|
scheduler_size: 97
|
|
hidden_loads: false
|
|
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 |
|
|
└-------┘ └-------┘ └-------┘
|
|
┌-------┐ ┌-------┐ ┌-------┐
|
|
|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: addsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: addss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: addl
|
|
operands:
|
|
- class: "immediate"
|
|
imd: "int"
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: 1.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: addq
|
|
operands:
|
|
- class: "immediate"
|
|
imd: "int"
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: 1.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: cmpl
|
|
operands:
|
|
- class: "register"
|
|
name: "gpr"
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: ~ # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: cmpq
|
|
operands:
|
|
- class: "register"
|
|
name: "gpr"
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: ~ # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: cmpq
|
|
operands:
|
|
- class: "register"
|
|
name: "gpr"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
throughput: 0.5
|
|
latency: ~ # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.5, 0.5, 0.5, 0.5, 0.0, 0.25, 0.25, 0.0]
|
|
- name: incq
|
|
operands:
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: ~ # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: ja
|
|
operands:
|
|
- class: 'identifier'
|
|
throughput: 0.0
|
|
latency: 0.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: jb
|
|
operands:
|
|
- class: 'identifier'
|
|
throughput: 0.0
|
|
latency: 0.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: jne
|
|
operands:
|
|
- class: 'identifier'
|
|
throughput: 0.0
|
|
latency: 0.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: mulsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: mulss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: rcpss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 1.0
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: sqrtsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 6.0
|
|
latency: 22.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [1.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: sqrtss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 3.0
|
|
latency: 16.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: subq
|
|
operands:
|
|
- class: "immediate"
|
|
imd: "int"
|
|
- class: "register"
|
|
name: "gpr"
|
|
throughput: 0.25
|
|
latency: 1.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.25, 0.0]
|
|
- name: vaddpd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddpd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddpd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddpd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddsd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vaddss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vdivsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 4.0
|
|
latency: 14.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vdivss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 3.0
|
|
latency: 11.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd213pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd213pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd231pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd231pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd132pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vfmadd132pd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmulsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmulss
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmulpd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmulpd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmulpd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 8.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.5, 0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 3.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 5.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|
|
- name: vmovapd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 5.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|
|
- name: vmovupd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 5.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|
|
- name: vmovupd
|
|
operands:
|
|
- class: "register"
|
|
name: "ymm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 5.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|
|
- name: vmovupd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: ~
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovupd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "ymm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovsd
|
|
operands:
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
- class: "register"
|
|
name: "xmm"
|
|
throughput: 0.5
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
|
|
- name: vmovsd
|
|
operands:
|
|
- class: "register"
|
|
name: "xmm"
|
|
- class: "memory"
|
|
base: "gpr"
|
|
offset: "imd"
|
|
index: "gpr"
|
|
scale: 1
|
|
throughput: 1.0
|
|
latency: 4.0 # 0 0DV 1 2 2D 3 3D 4 5 6 7
|
|
port_pressure: [0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.0]
|