mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-04 10:10:08 +01:00
added sve instructions
This commit is contained in:
@@ -79,6 +79,17 @@ instruction_forms:
|
|||||||
throughput: 0.25
|
throughput: 0.25
|
||||||
latency: 1.0 # 1*p0234
|
latency: 1.0 # 1*p0234
|
||||||
port_pressure: [[1, '0234']]
|
port_pressure: [[1, '0234']]
|
||||||
|
- name: addpl
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: x
|
||||||
|
- class: register
|
||||||
|
prefix: x
|
||||||
|
- class: immediate
|
||||||
|
imd: int
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 1.0 # 1*p34
|
||||||
|
port_pressure: [[1, '34']]
|
||||||
- name: adds
|
- name: adds
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -96,6 +107,18 @@ instruction_forms:
|
|||||||
throughput: 1.0
|
throughput: 1.0
|
||||||
latency: 0.0
|
latency: 0.0
|
||||||
port_pressure: [[1, '7']]
|
port_pressure: [[1, '7']]
|
||||||
|
- name: b.any
|
||||||
|
operands:
|
||||||
|
- class: identifier
|
||||||
|
throughput: 1.0
|
||||||
|
latency: 0.0
|
||||||
|
port_pressure: [[1, '7']]
|
||||||
|
- name: b.none
|
||||||
|
operands:
|
||||||
|
- class: identifier
|
||||||
|
throughput: 1.0
|
||||||
|
latency: 0.0
|
||||||
|
port_pressure: [[1, '7']]
|
||||||
- name: b.gt
|
- name: b.gt
|
||||||
operands:
|
operands:
|
||||||
- class: identifier
|
- class: identifier
|
||||||
@@ -108,6 +131,12 @@ instruction_forms:
|
|||||||
throughput: 1.0
|
throughput: 1.0
|
||||||
latency: 0.0
|
latency: 0.0
|
||||||
port_pressure: [[1, '7']]
|
port_pressure: [[1, '7']]
|
||||||
|
- name: beq
|
||||||
|
operands:
|
||||||
|
- class: identifier
|
||||||
|
throughput: 1.0
|
||||||
|
latency: 0.0
|
||||||
|
port_pressure: [[1, '7']]
|
||||||
- name: cmp
|
- name: cmp
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -137,6 +166,51 @@ instruction_forms:
|
|||||||
throughput: 1.0
|
throughput: 1.0
|
||||||
latency: 6.0 # 1*p0
|
latency: 6.0 # 1*p0
|
||||||
port_pressure: [[1, '0']]
|
port_pressure: [[1, '0']]
|
||||||
|
- name: fadd
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 9.0 # 1*p02
|
||||||
|
port_pressure: [[1, '02']]
|
||||||
|
- name: fadda
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: d
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
- class: register
|
||||||
|
prefix: d
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '512'
|
||||||
|
throughput: 18.5
|
||||||
|
latency: 72.0 # 18*p0+19*p02
|
||||||
|
port_pressure: [[18, '0'], [19, '02']]
|
||||||
|
- name: faddv
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: d
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '512'
|
||||||
|
throughput: 11.5
|
||||||
|
latency: 49.0 # 11*p0+12*p02
|
||||||
|
port_pressure: [[10, '0'], [12, '02']]
|
||||||
- name: fadd
|
- name: fadd
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -219,6 +293,26 @@ instruction_forms:
|
|||||||
throughput: 43.0
|
throughput: 43.0
|
||||||
latency: 43.0 # 1*p0+43*p0DV
|
latency: 43.0 # 1*p0+43*p0DV
|
||||||
port_pressure: [[1, '0'], [43.0, [0DV]]]
|
port_pressure: [[1, '0'], [43.0, [0DV]]]
|
||||||
|
- name: [fmad, fmla]
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
predication: m
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 9.0 # 1*p02
|
||||||
|
port_pressure: [[1, '02']]
|
||||||
- name: fmla
|
- name: fmla
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -260,6 +354,23 @@ instruction_forms:
|
|||||||
latency: ~ # 1*p0
|
latency: ~ # 1*p0
|
||||||
port_pressure: [[1, '0']]
|
port_pressure: [[1, '0']]
|
||||||
throughput: 1.0
|
throughput: 1.0
|
||||||
|
- name: fmul
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
width: '*'
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 9.0 # 1*p02
|
||||||
|
port_pressure: [[1, '02']]
|
||||||
- name: fmul
|
- name: fmul
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -373,6 +484,31 @@ instruction_forms:
|
|||||||
throughput: 0.5
|
throughput: 0.5
|
||||||
latency: 9.0 # 1*p02
|
latency: 9.0 # 1*p02
|
||||||
port_pressure: [[1, '02']]
|
port_pressure: [[1, '02']]
|
||||||
|
- name: incd
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: x
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 1.0 # 1*p34
|
||||||
|
port_pressure: [[1, '34']]
|
||||||
|
- name: ld1d
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
predication: '*'
|
||||||
|
- class: memory
|
||||||
|
base: x
|
||||||
|
offset: ~
|
||||||
|
index: '*'
|
||||||
|
scale: '*'
|
||||||
|
pre-indexed: false
|
||||||
|
post-indexed: false
|
||||||
|
throughput: 0.5
|
||||||
|
latency: 8.0 # 1*p56+1*p5D6D
|
||||||
|
port_pressure: [[1, '56'], [1, ['5D', '6D']]]
|
||||||
- name: ldp
|
- name: ldp
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -764,6 +900,23 @@ instruction_forms:
|
|||||||
throughput: 1.0
|
throughput: 1.0
|
||||||
latency: 0 # 1*p56+1*p3+1*p0234
|
latency: 0 # 1*p56+1*p3+1*p0234
|
||||||
port_pressure: [[1, '56'], [1, '3'], [1, '0234']]
|
port_pressure: [[1, '56'], [1, '3'], [1, '0234']]
|
||||||
|
- name: st1d
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: z
|
||||||
|
shape: d
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
- class: memory
|
||||||
|
base: x
|
||||||
|
offset: ~
|
||||||
|
index: '*'
|
||||||
|
scale: '*'
|
||||||
|
pre-indexed: false
|
||||||
|
post-indexed: false
|
||||||
|
throughput: 2.0
|
||||||
|
latency: 0 # 2*p5+2*p6+1*p0
|
||||||
|
port_pressure: [[1, '5'], [1, '6'], [1, '0']]
|
||||||
- name: subs
|
- name: subs
|
||||||
operands:
|
operands:
|
||||||
- class: register
|
- class: register
|
||||||
@@ -786,3 +939,16 @@ instruction_forms:
|
|||||||
throughput: 0.25
|
throughput: 0.25
|
||||||
latency: 1.0 # 1*p0234
|
latency: 1.0 # 1*p0234
|
||||||
port_pressure: [[1, '0234']]
|
port_pressure: [[1, '0234']]
|
||||||
|
- name: [whilele, whilelo, whilels, whilelt]
|
||||||
|
operands:
|
||||||
|
- class: register
|
||||||
|
prefix: p
|
||||||
|
shape: d
|
||||||
|
- class: register
|
||||||
|
prefix: '*'
|
||||||
|
- class: register
|
||||||
|
prefix: '*'
|
||||||
|
throughput: 1.0
|
||||||
|
latency: 1.0 # 1*p1+1*p3
|
||||||
|
port_pressure: [[1, '1'], [1, '3']]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user