mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-08 12:10:06 +01:00
1967 lines
38 KiB
YAML
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 |