removed unused DBs

This commit is contained in:
JanLJL
2019-07-05 15:30:30 +02:00
parent 2e23820a55
commit e5fdb7a9ac
13 changed files with 0 additions and 40122 deletions

View File

@@ -1,14 +0,0 @@
#!/usr/bin/env python3
from osaca.parser import ParserAArch64v81, ParserX86ATT
# from .marker_utils import reduce_to_section
class Analyzer(object):
def __init__(self, parser_result, isa):
self.ISA = isa
if isa == 'x86':
self.parser = ParserX86ATT()
elif isa == 'AArch64':
self.parser = ParserAArch64v81()
self.kernel = parser_result

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,223 +0,0 @@
#!/usr/bin/env python3
from collections import defaultdict, OrderedDict
import xml.etree.ElementTree as ET
import re
import sys
import argparse
from distutils.version import StrictVersion
from osaca.param import Parameter, Register
from osaca.eu_sched import Scheduler
def normalize_reg_name(reg_name):
# strip spaces
reg_name = reg_name.strip()
# masks are denoted with curly brackets in uops.info
reg_name = re.sub(r'{K([0-7])}', r'K\1', reg_name)
reg_name = re.sub(r'ST\(([0-7])\)', r'ST\1', reg_name)
return reg_name
def port_occupancy_from_tag_attributes(attrib, arch):
occupancy = defaultdict(int)
for k, v in attrib.items():
m = re.match('^port([0-9]+)', k)
if not m:
continue
ports = m.group(1)
# Ignore Port7 on HSW, BDW, SKL and SKX if present in combination with ports 2 and 3.
# Port7 is only used for simple address generation, while 2 and 3 handle all addressing,
# but uops.info does not differentiate.
if arch in ['HSW', 'BDW', 'SKL', 'SKX'] and ports == '237':
ports = ports.replace('7', '')
potential_ports = list(ports)
per_port_occupancy = int(v) / len(potential_ports)
for pp in potential_ports:
occupancy[pp] += per_port_occupancy
# Also consider DIV pipeline
if 'div_cycles' in attrib:
occupancy['0DV'] = int(attrib['div_cycles'])
return dict(occupancy)
def extract_paramters(instruction_tag):
# Extract parameter components
parameters = [] # used to store string representations
parameter_tags = sorted(instruction_tag.findall("operand"),
key=lambda p: int(p.attrib['idx']))
for parameter_tag in parameter_tags:
# Ignore parameters with suppressed=1
if int(parameter_tag.attrib.get('suppressed', '0')):
continue
p_type = parameter_tag.attrib['type']
if p_type == 'imm':
parameters.append('imd') # Parameter('IMD')
elif p_type == 'mem':
parameters.append('mem') # Parameter('MEM')
elif p_type == 'reg':
possible_regs = [normalize_reg_name(r)
for r in parameter_tag.text.split(',')]
reg_groups = [Register.sizes.get(r, None) for r in possible_regs]
if reg_groups[1:] == reg_groups[:-1]:
if reg_groups[0] is None:
raise ValueError("Unknown register type for {} with {}.".format(
parameter_tag.attrib, parameter_tag.text))
elif reg_groups[0][1] == 'GPR':
parameters.append('r{}'.format(reg_groups[0][0]))
# Register(possible_regs[0]))
elif '{' in parameter_tag.text:
# We have a mask
parameters[-1] += '{opmask}'
else:
parameters.append(reg_groups[0][1].lower())
elif p_type == 'relbr':
parameters.append('LBL')
elif p_type == 'agen':
parameters.append('mem')
else:
raise ValueError("Unknown paramter type {}".format(parameter_tag.attrib))
return parameters
def extract_model(tree, arch):
model_data = []
for instruction_tag in tree.findall('//instruction'):
ignore = False
mnemonic = instruction_tag.attrib['asm']
# Extract parameter components
try:
parameters = extract_paramters(instruction_tag)
except ValueError as e:
print(e, file=sys.stderr)
# Extract port occupation, throughput and latency
port_occupancy, throughput, latency = [], 0.0, None
arch_tag = instruction_tag.find('architecture[@name="'+arch+'"]')
if arch_tag is None:
continue
# We collect all measurement and IACA information and compare them later
for measurement_tag in arch_tag.iter('measurement'):
port_occupancy.append(port_occupancy_from_tag_attributes(measurement_tag.attrib, arch))
# FIXME handle min/max Latencies ('maxCycles' and 'minCycles')
latencies = [int(l_tag.attrib['cycles'])
for l_tag in measurement_tag.iter('latency') if 'latency' in l_tag.attrib]
if latencies[1:] != latencies[:-1]:
print("Contradicting latencies found:", mnemonic, file=sys.stderr)
ignore = True
elif latencies:
latency = latencies[0]
# Ordered by IACA version (newest last)
for iaca_tag in sorted(arch_tag.iter('IACA'),
key=lambda i: StrictVersion(i.attrib['version'])):
port_occupancy.append(port_occupancy_from_tag_attributes(iaca_tag.attrib, arch))
if ignore: continue
# Check if all are equal
if port_occupancy:
if port_occupancy[1:] != port_occupancy[:-1]:
print("Contradicting port occupancies, using latest IACA:", mnemonic,
file=sys.stderr)
port_occupancy = port_occupancy[-1]
throughput = max(list(port_occupancy.values())+[0.0])
else:
# print("No data available for this architecture:", mnemonic, file=sys.stderr)
continue
for m, p in build_variants(mnemonic, parameters):
model_data.append((m.lower() + '-' + '_'.join(p),
throughput, latency, port_occupancy))
return model_data
def all_or_false(iterator):
if not iterator:
return False
else:
return all(iterator)
def build_variants(mnemonic, parameters):
"""Yield all resonable variants of this instruction form."""
# The one that was given
mnemonic = mnemonic.upper()
yield mnemonic, parameters
# Without opmask
if any(['{opmask}' in p for p in parameters]):
yield mnemonic, list([p.replace('{opmask}', '') for p in parameters])
# With suffix (assuming suffix was not already present)
suffixes = {'Q': 'r64',
'L': 'r32',
'W': 'r16',
'B': 'r8'}
for s, reg in suffixes.items():
if not mnemonic.endswith(s) and all_or_false(
[p == reg for p in parameters if p not in ['mem', 'imd']]):
yield mnemonic+s, parameters
def architectures(tree):
return set([a.attrib['name'] for a in tree.findall('.//architecture')])
def int_or_zero(s):
try:
return int(s)
except ValueError:
return 0
def dump_csv(model_data, arch):
csv = 'instr,TP,LT,ports\n'
ports = set()
for mnemonic, throughput, latency, port_occupancy in model_data:
for p in port_occupancy:
ports.add(p)
ports = sorted(ports)
# If not all ports have been used (happens with port7 due to blacklist
# port_occupancy_from_tag_attributes), extend list accordingly:
while len(ports) < Scheduler.arch_dict[arch] + len(Scheduler.arch_pipeline_ports.get(arch, [])):
max_index = ports.index(str(max(map(int_or_zero, ports))))
ports.insert(max_index + 1, str(max(map(int_or_zero, ports)) + 1))
for mnemonic, throughput, latency, port_occupancy in model_data:
for p in ports:
if p not in port_occupancy:
port_occupancy[p] = 0.0
po_items = sorted(port_occupancy.items())
csv_line = '{},{},{},"({})"\n'.format(mnemonic, throughput, latency,
','.join([str(c) for p, c in po_items]))
csv += csv_line
return csv
def main():
parser = argparse.ArgumentParser()
parser.add_argument('xml', help='path of instructions.xml from http://uops.info')
parser.add_argument('arch', nargs='?',
help='architecture to extract, use IACA abbreviations (e.g., SNB). '
'if not given, all will be extracted and saved to file in CWD.')
args = parser.parse_args()
tree = ET.parse(args.xml)
if args.arch:
model_data = extract_model(tree, args.arch)
print(dump_csv(model_data, args.arch))
else:
for arch in architectures(tree):
model_data = extract_model(tree, arch)
with open('{}_data.csv'.format(arch), 'w') as f:
f.write(dump_csv(model_data, arch))
if __name__ == '__main__':
main()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,122 +0,0 @@
instr,TP,LT,ports
jae-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
ja-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jbe-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jb-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jc-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jcxz-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jecxz-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
je-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jge-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jg-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jle-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jl-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jmp-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jmpq-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnae-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jna-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnbe-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnb-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnc-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jne-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnge-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jng-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnle-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnl-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jno-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jno-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnp-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jns-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jns-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jnz-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jo-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jo-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jpe-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jp-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jpo-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
js-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
js-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
jz-lbl,0.0,0.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
add-r32_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
add-r64_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
addl-r32_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
addq-r64_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
addl-mem_imd,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
addq-mem_imd,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
add-mem_r32,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
add-mem_r64,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
addl-mem_r32,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
addq-mem_r64,1.0,7.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)"
cmp-mem_r32,0.5,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)"
cmpl-mem_r32,0.5,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)"
cmp-r32_mem,0.5,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)"
cmpl-r32_mem,0.5,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)"
cmp-r32_r32,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
cmpl-r32_r32,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
cmp-r64_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
cmp-r64_r64,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
cmpq-r64_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
cmpq-r64_r64,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
inc-r64,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
incq-r64,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
incl-r32,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
mov-mem_r64,1.0,4.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)"
mov-r64_mem,0.5,3.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
mov-r32_mem,0.5,3.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
movq-mem_r64,1.0,4.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)"
movq-r64_mem,0.5,3.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
movl-r32_mem,0.5,3.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
movslq-r64_r32,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
sub-r32_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
vaddpd-ymm_ymm_mem,1.0,3.0,"(0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0.5, 0.5)"
vaddsd-xmm_xmm_mem,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0.5, 0.5)"
vaddsd-xmm_xmm_xmm,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)"
vaddss-xmm_xmm_xmm,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)"
vcvtsi2ss-xmm_xmm_r32,1.0,4.0,"(1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
vcvtss2si-r32_xmm,1.0,7.0,"(1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
cvtsi2ss-xmm_r32,1.0,8.0,"(1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213pd-ymm_ymm_ymm,1.0,5.0,"(1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213pd-xmm_xmm_xmm,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213ps-ymm_ymm_ymm,1.0,5.0,"(1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213ps-xmm_xmm_xmm,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213sd-xmm_xmm_xmm,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd213ss-xmm_xmm_xmm,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd132sd-xmm_xmm_mem,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
vfmadd132pd-xmm_xmm_mem,0.5,5.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
vfmadd132pd-ymm_ymm_mem,1.0,5.0,"(1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)"
vinsertf128-ymm_ymm_imd,0.6666666666666667,1.0,"(-1,)"
vmovsd-mem_xmm,1.0,8.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)"
vmovsd-xmm_mem,0.5,-1.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
vmulpd-ymm_ymm_ymm,1.0,4.0,"(1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vmulsd-xmm_xmm_mem,0.5,4.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
vmulsd-xmm_xmm_xmm,0.5,4.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vmulss-xmm_xmm_xmm,0.5,3.0,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vsubpd-ymm_ymm_mem,1.0,3.0,"(0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 1.0, 1.0)"
vsubsd-xmm_xmm_mem,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0.5, 0.5)"
vsubsd-xmm_xmm_xmm,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)"
vsubss-xmm_xmm_xmm,0.5,3.0,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)"
vmovaps-xmm_mem,0.5,3.0,"(0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0.5, 0.5)"
vmovaps-mem_xmm,1.0,5.0,"(0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 1.0, 1.0)"
vmovapd-ymm_mem,1.0,-1.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)"
vmovapd-mem_ymm,2.0,-1.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 2.0, 2.0)"
movq-r64_xmm,1.0,-1.0,"(0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0)"
#prefetcht0-mem,0.5,-1.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
#prefetchw-mem,0.5,-1.0,"(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)"
cmpl-r32_imd,0.25,1.0,"(0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)"
vaddpd-xmm_xmm_xmm,0.5,3,"(0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0)"
vaddpd-ymm_ymm_ymm,1,3,"(0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
vcvtdq2pd-xmm_xmm,1,7,"(0.5, 0.5, 0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
vcvtdq2pd-ymm_xmm,2,7,"(1.0, 1.0, 0, 2.0, 0, 0, 0, 0, 0, 0, 0)"
vcvtsi2sd-xmm_xmm_r32,1,4,"(0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)"
vextracti128-xmm_ymm_imd,0.3333333333333333,1,"(0.33, 0.33, 0, 0.33, 0, 0, 0, 0, 0, 0, 0)"
vfmadd132pd-xmm_xmm_xmm,0.5,5,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd132pd-ymm_ymm_ymm,1,5,"(1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vfmadd132sd-xmm_xmm_xmm,0.5,5,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vmulpd-xmm_xmm_xmm,0.5,4,"(0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)"
vpaddd-xmm_xmm_xmm,0.3333333333333333,1,"(0.33, 0.33, 0, 0.33, 0, 0, 0, 0, 0, 0, 0)"
vpaddd-ymm_ymm_ymm,0.6666666666666667,1,"(0.66, 0.66, 0, 0.66, 0, 0, 0, 0, 0, 0, 0)"
vpshufd-xmm_xmm_imd,0.5,1,"(0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0)"
vxorpd-xmm_xmm_xmm,0.25,1,"(0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0)"
vxorps-xmm_xmm_xmm,0.25,1,"(0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0)"
vdivpd-xmm_xmm_xmm,4,8,"(0, 0, 0, 1.0, 4.0, 0, 0, 0, 0, 0, 0)"
vdivsd-xmm_xmm_xmm,4,8,"(0, 0, 0, 1.0, 4.0, 0, 0, 0, 0, 0, 0)"
1 instr TP LT ports
2 jae-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
3 ja-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
4 jbe-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
5 jb-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
6 jc-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
7 jcxz-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
8 jecxz-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
9 je-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
10 jge-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
11 jg-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
12 jle-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
13 jl-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
14 jmp-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
15 jmpq-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
16 jnae-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
17 jna-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
18 jnbe-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
19 jnb-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
20 jnc-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
21 jne-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
22 jnge-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
23 jng-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
24 jnle-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
25 jnl-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
26 jno-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
27 jno-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
28 jnp-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
29 jns-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
30 jns-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
31 jnz-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
32 jo-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
33 jo-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
34 jpe-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
35 jp-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
36 jpo-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
37 js-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
38 js-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
39 jz-lbl 0.0 0.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
40 add-r32_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
41 add-r64_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
42 addl-r32_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
43 addq-r64_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
44 addl-mem_imd 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
45 addq-mem_imd 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
46 add-mem_r32 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
47 add-mem_r64 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
48 addl-mem_r32 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
49 addq-mem_r64 1.0 7.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 1.0, 1.0)
50 cmp-mem_r32 0.5 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)
51 cmpl-mem_r32 0.5 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)
52 cmp-r32_mem 0.5 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)
53 cmpl-r32_mem 0.5 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5)
54 cmp-r32_r32 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
55 cmpl-r32_r32 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
56 cmp-r64_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
57 cmp-r64_r64 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
58 cmpq-r64_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
59 cmpq-r64_r64 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
60 inc-r64 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
61 incq-r64 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
62 incl-r32 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
63 mov-mem_r64 1.0 4.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)
64 mov-r64_mem 0.5 3.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
65 mov-r32_mem 0.5 3.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
66 movq-mem_r64 1.0 4.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)
67 movq-r64_mem 0.5 3.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
68 movl-r32_mem 0.5 3.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
69 movslq-r64_r32 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
70 sub-r32_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
71 vaddpd-ymm_ymm_mem 1.0 3.0 (0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0.5, 0.5)
72 vaddsd-xmm_xmm_mem 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0.5, 0.5)
73 vaddsd-xmm_xmm_xmm 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)
74 vaddss-xmm_xmm_xmm 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)
75 vcvtsi2ss-xmm_xmm_r32 1.0 4.0 (1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)
76 vcvtss2si-r32_xmm 1.0 7.0 (1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)
77 cvtsi2ss-xmm_r32 1.0 8.0 (1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)
78 vfmadd213pd-ymm_ymm_ymm 1.0 5.0 (1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
79 vfmadd213pd-xmm_xmm_xmm 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
80 vfmadd213ps-ymm_ymm_ymm 1.0 5.0 (1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
81 vfmadd213ps-xmm_xmm_xmm 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
82 vfmadd213sd-xmm_xmm_xmm 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
83 vfmadd213ss-xmm_xmm_xmm 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
84 vfmadd132sd-xmm_xmm_mem 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
85 vfmadd132pd-xmm_xmm_mem 0.5 5.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
86 vfmadd132pd-ymm_ymm_mem 1.0 5.0 (1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)
87 vinsertf128-ymm_ymm_imd 0.6666666666666667 1.0 (-1,)
88 vmovsd-mem_xmm 1.0 8.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)
89 vmovsd-xmm_mem 0.5 -1.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
90 vmulpd-ymm_ymm_ymm 1.0 4.0 (1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
91 vmulsd-xmm_xmm_mem 0.5 4.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
92 vmulsd-xmm_xmm_xmm 0.5 4.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
93 vmulss-xmm_xmm_xmm 0.5 3.0 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
94 vsubpd-ymm_ymm_mem 1.0 3.0 (0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 1.0, 1.0)
95 vsubsd-xmm_xmm_mem 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0.5, 0.5)
96 vsubsd-xmm_xmm_xmm 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)
97 vsubss-xmm_xmm_xmm 0.5 3.0 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0)
98 vmovaps-xmm_mem 0.5 3.0 (0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0.5, 0.5)
99 vmovaps-mem_xmm 1.0 5.0 (0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 1.0, 1.0)
100 vmovapd-ymm_mem 1.0 -1.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0)
101 vmovapd-mem_ymm 2.0 -1.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 2.0, 2.0)
102 movq-r64_xmm 1.0 -1.0 (0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0)
103 #prefetcht0-mem 0.5 -1.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
104 #prefetchw-mem 0.5 -1.0 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5)
105 cmpl-r32_imd 0.25 1.0 (0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0, 0)
106 vaddpd-xmm_xmm_xmm 0.5 3 (0, 0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0)
107 vaddpd-ymm_ymm_ymm 1 3 (0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)
108 vcvtdq2pd-xmm_xmm 1 7 (0.5, 0.5, 0, 1.0, 0, 0, 0, 0, 0, 0, 0)
109 vcvtdq2pd-ymm_xmm 2 7 (1.0, 1.0, 0, 2.0, 0, 0, 0, 0, 0, 0, 0)
110 vcvtsi2sd-xmm_xmm_r32 1 4 (0, 0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 0)
111 vextracti128-xmm_ymm_imd 0.3333333333333333 1 (0.33, 0.33, 0, 0.33, 0, 0, 0, 0, 0, 0, 0)
112 vfmadd132pd-xmm_xmm_xmm 0.5 5 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
113 vfmadd132pd-ymm_ymm_ymm 1 5 (1.0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
114 vfmadd132sd-xmm_xmm_xmm 0.5 5 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
115 vmulpd-xmm_xmm_xmm 0.5 4 (0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0)
116 vpaddd-xmm_xmm_xmm 0.3333333333333333 1 (0.33, 0.33, 0, 0.33, 0, 0, 0, 0, 0, 0, 0)
117 vpaddd-ymm_ymm_ymm 0.6666666666666667 1 (0.66, 0.66, 0, 0.66, 0, 0, 0, 0, 0, 0, 0)
118 vpshufd-xmm_xmm_imd 0.5 1 (0, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0)
119 vxorpd-xmm_xmm_xmm 0.25 1 (0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0)
120 vxorps-xmm_xmm_xmm 0.25 1 (0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0)
121 vdivpd-xmm_xmm_xmm 4 8 (0, 0, 0, 1.0, 4.0, 0, 0, 0, 0, 0, 0)
122 vdivsd-xmm_xmm_xmm 4 8 (0, 0, 0, 1.0, 4.0, 0, 0, 0, 0, 0, 0)