diff --git a/osaca/data/create_db_entry.py b/osaca/data/create_db_entry.py new file mode 100755 index 0000000..bd45bfd --- /dev/null +++ b/osaca/data/create_db_entry.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +from collections import OrderedDict, defaultdict +from fractions import Fraction + + +class EntryBuilder: + @staticmethod + def compute_throughput(port_pressure): + port_occupancy = defaultdict(Fraction) + for uops, ports in port_pressure: + for p in ports: + port_occupancy[p] += Fraction(uops, len(ports)) + return float(max(list(port_occupancy.values()) + [0])) + + @staticmethod + def classify(operands_types): + load = "mem" in operands_types[:-1] + store = "mem" in operands_types[-1:] + assert not (load and store), "Can not process a combined load-store instruction." + return load, store + + def build_description( + self, instruction_name, operand_types, port_pressure=[], latency=0, comment=None + ): + if comment: + comment = " # " + comment + else: + comment = "" + description = "- name: {}{}\n operands:\n".format(instruction_name, comment) + + for ot in operand_types: + if ot == "imd": + description += " - class: immediate\n imd: int\n" + elif ot.startswith("mem"): + description += " - class: memory\n" ' base: "*"\n' ' offset: "*"\n' + if ot == "mem_simple": + description += " index: ~\n" + elif ot == "mem_complex": + description += " index: gpr\n" + else: + description += ' index: "*"\n' + description += ' scale: "*"\n' + else: + if "{k}" in ot: + description += " - class: register\n name: {}\n mask: True\n".format(ot.replace("{k}", "")) + else: + description += " - class: register\n name: {}\n".format(ot) + + description += ( + " latency: {latency}\n" + " port_pressure: {port_pressure!r}\n" + " throughput: {throughput}\n" + " uops: {uops}\n" + ).format( + latency=latency, + port_pressure=port_pressure, + throughput=self.compute_throughput(port_pressure), + uops=sum([i for i, p in port_pressure]), + ) + return description + + def parse_port_pressure(self, port_pressure_str): + """ + Example: + 1*p45+2*p0 -> [[1, '45'], [2, '0']] + """ + port_pressure = [] + if port_pressure_str: + for p in port_pressure_str.split("+"): + cycles, ports = p.split("*p") + if ports.startswith("(") and ports.endswith(")"): + ports = ports[1:-1].split(",") + port_pressure.append([int(cycles), ports]) + return port_pressure + + def process_item(self, instruction_form, resources): + """ + Example: + ('mov xmm mem', ('1*p45+2*p0', 7) -> ('mov', ['xmm', 'mem'], [[1, '45'], [2, '0']], 7) + """ + if instruction_form.startswith("[") and "]" in instruction_form: + instr_elements = instruction_form.split("]") + instr_elements = [instr_elements[0] + "]"] + instr_elements[1].strip().split(" ") + else: + instr_elements = instruction_form.split(" ") + latency = int(resources[1]) + port_pressure = self.parse_port_pressure(resources[0]) + instruction_name = instr_elements[0] + operand_types = instr_elements[1:] + return self.build_description(instruction_name, operand_types, port_pressure, latency) + + +class EntryBuilderIntelPort9(EntryBuilder): + # for ICX + + def build_description(self, instruction_name, operand_types, port_pressure=[], latency=0): + load, store = self.classify(operand_types) + + if load: + port_pressure += [[1, "23"], [1, ["2D", "3D"]]] + latency += 5 + comment = "with load" + return EntryBuilder.build_description( + self, instruction_name, operand_types, port_pressure, latency, comment + ) + if store: + port_pressure = port_pressure + [[1, "79"], [1, "48"]] + operands = ["mem" if o == "mem" else o for o in operand_types] + latency += 0 + return ( + EntryBuilder.build_description( + self, + instruction_name, + operands, + port_pressure, + latency, + "with store", + ) + ) + + # Register only: + return EntryBuilder.build_description( + self, instruction_name, operand_types, port_pressure, latency + ) + + +def get_description(instruction_form, port_pressure, latency, rhs_comment=None): + entry = EntryBuilderIntelPort9().process_item(instruction_form, (port_pressure, latency)) + + if rhs_comment is not None: + max_length = max([len(line) for line in entry.split("\n")]) + + commented_entry = "" + for line in entry.split("\n"): + commented_entry += ("{:<" + str(max_length) + "} # {}\n").format( + line, rhs_comment + ) + entry = commented_entry + + return entry + + +if __name__ == "__main__": + import sys + + if len(sys.argv) != 4 and len(sys.argv) != 5: + print("Usage: {} [COMMENT]".format(sys.argv[0])) + sys.exit(0) + + try: + print(get_description(*sys.argv[1:])) + except KeyError: + print("Unknown architecture.") + sys.exit(1) diff --git a/osaca/data/generate_mov_entries.py b/osaca/data/generate_mov_entries.py index bf7cbf6..eb7f081 100755 --- a/osaca/data/generate_mov_entries.py +++ b/osaca/data/generate_mov_entries.py @@ -109,6 +109,467 @@ class MOVEntryBuilderIntelNoPort7AGU(MOVEntryBuilder): ) +class MOVEntryBuilderIntelPort9(MOVEntryBuilder): + # for ICX + + def build_description(self, instruction_name, operand_types, port_pressure=[], latency=0): + load, store = self.classify(operand_types) + + if load: + port_pressure += [[1, "23"], [1, ["2D", "3D"]]] + latency += 5 + comment = "with load" + return MOVEntryBuilder.build_description( + self, instruction_name, operand_types, port_pressure, latency, comment + ) + if store: + port_pressure = port_pressure + [[1, "79"], [1, "48"]] + operands = ["mem" if o == "mem" else o for o in operand_types] + latency += 0 + return ( + MOVEntryBuilder.build_description( + self, + instruction_name, + operands, + port_pressure, + latency, + "with store", + ) + ) + + # Register only: + return MOVEntryBuilder.build_description( + self, instruction_name, operand_types, port_pressure, latency + ) + + +p9 = MOVEntryBuilderIntelPort9() + +icx_mov_instructions = [ + # https://www.felixcloutier.com/x86/mov + ("mov gpr gpr", ("1*p0156", 1)), + ("mov gpr mem", ("", 0)), + ("mov mem gpr", ("", 0)), + ("mov imd gpr", ("1*p0156", 1)), + ("mov imd mem", ("", 0)), + ("movabs imd gpr", ("1*p0156", 1)), # AT&T version + # https://www.felixcloutier.com/x86/movapd + ("movapd xmm xmm", ("1*p015", 1)), + ("movapd xmm mem", ("", 0)), + ("movapd mem xmm", ("", 0)), + ("vmovapd xmm xmm", ("1*p015", 1)), + ("vmovapd xmm mem", ("", 0)), + ("vmovapd mem xmm", ("", 0)), + ("vmovapd ymm ymm", ("1*p015", 1)), + ("vmovapd ymm mem", ("", 0)), + ("vmovapd mem ymm", ("", 0)), + ("vmovapd zmm zmm", ("1*p05", 1)), + ("vmovapd zmm mem", ("", 0)), + ("vmovapd mem zmm", ("", 0)), + # https://www.felixcloutier.com/x86/movaps + ("movaps xmm xmm", ("1*p015", 1)), + ("movaps xmm mem", ("", 0)), + ("movaps mem xmm", ("", 0)), + ("vmovaps xmm xmm", ("1*p015", 1)), + ("vmovaps xmm mem", ("", 0)), + ("vmovaps mem xmm", ("", 0)), + ("vmovaps ymm ymm", ("1*p015", 1)), + ("vmovaps ymm mem", ("", 0)), + ("vmovaps mem ymm", ("", 0)), + ("vmovaps zmm zmm", ("1*p05", 1)), + ("vmovaps zmm mem", ("", 0)), + ("vmovaps mem zmm", ("", 0)), + # https://www.felixcloutier.com/x86/movd:movq + ("movd gpr mm", ("1*p5", 1)), + ("movd mem mm", ("", 0)), + ("movq gpr mm", ("1*p5", 1)), + ("movq mem mm", ("", 0)), + ("movd mm gpr", ("1*p0", 1)), + ("movd mm mem", ("", 0)), + ("movq mm gpr", ("1*p0", 1)), + ("movq mm mem", ("", 0)), + ("movd gpr xmm", ("1*p5", 1)), + ("movd mem xmm", ("", 0)), + ("movq gpr xmm", ("1*p5", 1)), + ("movq mem xmm", ("", 0)), + ("movd xmm gpr", ("1*p0", 1)), + ("movd xmm mem", ("", 0)), + ("movq xmm gpr", ("1*p0", 1)), + ("movq xmm mem", ("", 0)), + ("vmovd gpr xmm", ("1*p5", 1)), + ("vmovd mem xmm", ("", 0)), + ("vmovq gpr xmm", ("1*p5", 1)), + ("vmovq mem xmm", ("", 0)), + ("vmovd xmm gpr", ("1*p0", 1)), + ("vmovd xmm mem", ("", 0)), + ("vmovq xmm gpr", ("1*p0", 1)), + ("vmovq xmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movddup + ("movddup xmm xmm", ("1*p5", 1)), + ("movddup mem xmm", ("", 0)), + ("vmovddup xmm xmm", ("1*p5", 1)), + ("vmovddup mem xmm", ("", 0)), + ("vmovddup ymm ymm", ("1*p5", 1)), + ("vmovddup mem ymm", ("", 0)), + ("vmovddup zmm zmm", ("1*p5", 1)), + ("vmovddup mem zmm", ("", 0)), + # https://www.felixcloutier.com/x86/movdq2q + ("movdq2q xmm mm", ("1*p015+1*p5", 1)), + # https://www.felixcloutier.com/x86/movdqa:vmovdqa32:vmovdqa64 + ("movdqa xmm xmm", ("1*p015", 1)), + ("movdqa mem xmm", ("", 0)), + ("movdqa xmm mem", ("", 0)), + ("vmovdqa xmm xmm", ("1*p015", 1)), + ("vmovdqa mem xmm", ("", 0)), + ("vmovdqa xmm mem", ("", 0)), + ("vmovdqa ymm ymm", ("1*p015", 1)), + ("vmovdqa mem ymm", ("", 0)), + ("vmovdqa ymm mem", ("", 0)), + ("vmovdqa32 xmm xmm", ("1*p0156", 1)), + ("vmovdqa32 mem xmm", ("", 0)), + ("vmovdqa32 xmm mem", ("", 0)), + ("vmovdqa32 ymm ymm", ("1*p015", 1)), + ("vmovdqa32 mem ymm", ("", 0)), + ("vmovdqa32 ymm mem", ("", 0)), + ("vmovdqa32 zmm zmm", ("1*p05", 1)), + ("vmovdqa32 mem zmm", ("", 0)), + ("vmovdqa32 zmm mem", ("", 0)), + ("vmovdqa64 xmm xmm", ("1*p0156", 1)), + ("vmovdqa64 mem xmm", ("", 0)), + ("vmovdqa64 xmm mem", ("", 0)), + ("vmovdqa64 ymm ymm", ("1*p015", 1)), + ("vmovdqa64 mem ymm", ("", 0)), + ("vmovdqa64 ymm mem", ("", 0)), + ("vmovdqa64 zmm zmm", ("1*p05", 1)), + ("vmovdqa64 mem zmm", ("", 0)), + ("vmovdqa64 zmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movdqu:vmovdqu8:vmovdqu16:vmovdqu32:vmovdqu64 + ("movdqu xmm xmm", ("1*p015", 1)), + ("movdqu mem xmm", ("", 0)), + ("movdqu xmm mem", ("", 0)), + ("vmovdqu xmm xmm", ("1*p015", 1)), + ("vmovdqu mem xmm", ("", 0)), + ("vmovdqu xmm mem", ("", 0)), + ("vmovdqu ymm ymm", ("1*p015", 1)), + ("vmovdqu mem ymm", ("", 0)), + ("vmovdqu ymm mem", ("", 0)), + ("vmovdqu8 xmm xmm", ("1*p0156", 1)), + ("vmovdqu8 mem xmm", ("", 0)), + ("vmovdqu8 xmm mem", ("", 0)), + ("vmovdqu8 ymm ymm", ("1*p015", 1)), + ("vmovdqu8 mem ymm", ("", 0)), + ("vmovdqu8 ymm mem", ("", 0)), + ("vmovdqu8 zmm zmm", ("1*p05", 1)), + ("vmovdqu8 mem zmm", ("", 0)), + ("vmovdqu8 zmm mem", ("", 0)), + ("vmovdqu16 xmm xmm", ("1*p0156", 1)), + ("vmovdqu16 mem xmm", ("", 0)), + ("vmovdqu16 xmm mem", ("", 0)), + ("vmovdqu16 ymm ymm", ("1*p015", 1)), + ("vmovdqu16 mem ymm", ("", 0)), + ("vmovdqu16 ymm mem", ("", 0)), + ("vmovdqu16 zmm zmm", ("1*p05", 1)), + ("vmovdqu16 mem zmm", ("", 0)), + ("vmovdqu16 zmm mem", ("", 0)), + ("vmovdqu32 xmm xmm", ("1*p0156", 1)), + ("vmovdqu32 mem xmm", ("", 0)), + ("vmovdqu32 xmm mem", ("", 0)), + ("vmovdqu32 ymm ymm", ("1*p015", 1)), + ("vmovdqu32 mem ymm", ("", 0)), + ("vmovdqu32 ymm mem", ("", 0)), + ("vmovdqu32 zmm zmm", ("1*p05", 1)), + ("vmovdqu32 mem zmm", ("", 0)), + ("vmovdqu32 zmm mem", ("", 0)), + ("vmovdqu64 xmm xmm", ("1*p0156", 1)), + ("vmovdqu64 mem xmm", ("", 0)), + ("vmovdqu64 xmm mem", ("", 0)), + ("vmovdqu64 ymm ymm", ("1*p015", 1)), + ("vmovdqu64 mem ymm", ("", 0)), + ("vmovdqu64 ymm mem", ("", 0)), + ("vmovdqu64 zmm zmm", ("1*p05", 1)), + ("vmovdqu64 mem zmm", ("", 0)), + ("vmovdqu64 zmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movhlps + ("movhlps xmm xmm", ("1*p5", 1)), + ("vmovhlps xmm xmm xmm", ("1*p5", 1)), + # https://www.felixcloutier.com/x86/movhpd + ("movhpd mem xmm", ("1*p5", 1)), + ("vmovhpd mem xmm xmm", ("1*p5", 1)), + ("movhpd xmm mem", ("", 0)), + ("vmovhpd mem xmm", ("", 0)), + # https://www.felixcloutier.com/x86/movhps + ("movhps mem xmm", ("1*p5", 1)), + ("vmovhps mem xmm xmm", ("1*p5", 1)), + ("movhps xmm mem", ("", 0)), + ("vmovhps mem xmm", ("", 0)), + # https://www.felixcloutier.com/x86/movlhps + ("movlhps xmm xmm", ("1*p5", 1)), + ("vmovlhps xmm xmm xmm", ("1*p5", 1)), + # https://www.felixcloutier.com/x86/movlpd + ("movlpd mem xmm", ("1*p5", 1)), + ("vmovlpd mem xmm xmm", ("1*p5", 1)), + ("movlpd xmm mem", ("", 0)), + ("vmovlpd mem xmm", ("1*p5", 1)), + # https://www.felixcloutier.com/x86/movlps + ("movlps mem xmm", ("1*p5", 1)), + ("vmovlps mem xmm xmm", ("1*p5", 1)), + ("movlps xmm mem", ("", 0)), + ("vmovlps mem xmm", ("1*p5", 1)), + # https://www.felixcloutier.com/x86/movmskpd + ("movmskpd xmm gpr", ("1*p0", 1)), + ("vmovmskpd xmm gpr", ("1*p0", 1)), + ("vmovmskpd ymm gpr", ("1*p0", 1)), + # https://www.felixcloutier.com/x86/movmskps + ("movmskps xmm gpr", ("1*p0", 1)), + ("vmovmskps xmm gpr", ("1*p0", 1)), + ("vmovmskps ymm gpr", ("1*p0", 1)), + # https://www.felixcloutier.com/x86/movntdq + ("movntdq xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdq xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdq ymm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdq zmm mem", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movntdqa + ("movntdqa mem xmm", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdqa mem xmm", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdqa mem ymm", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntdqa mem zmm", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movnti + ("movnti gpr mem", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movntpd + ("movntpd xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntpd xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntpd ymm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntpd zmm mem", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movntps + ("movntps xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntps xmm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntps ymm mem", ("", 0)), # TODO NT-store: what latency to use? + ("vmovntps zmm mem", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movntq + ("movntq mm mem", ("", 0)), # TODO NT-store: what latency to use? + # https://www.felixcloutier.com/x86/movq + ("movq mm mm", ("", 0)), + ("movq mem mm", ("", 0)), + ("movq mm mem", ("", 0)), + ("movq xmm xmm", ("1*p015", 1)), + ("movq mem xmm", ("", 0)), + ("movq xmm mem", ("", 0)), + ("vmovq xmm xmm", ("1*p015", 1)), + ("vmovq mem xmm", ("", 0)), + ("vmovq xmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movs:movsb:movsw:movsd:movsq + # TODO combined load-store is currently not supported + # ('movs mem mem', ()), + # https://www.felixcloutier.com/x86/movsd + ("movsd xmm xmm", ("1*p015", 1)), + ("movsd mem xmm", ("", 0)), + ("movsd xmm mem", ("", 0)), + ("vmovsd xmm xmm xmm", ("1*p015", 1)), + ("vmovsd mem xmm", ("", 0)), + ("vmovsd xmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movshdup + ("movshdup xmm xmm", ("1*p15", 1)), + ("movshdup mem xmm", ("", 0)), + ("vmovshdup xmm xmm", ("1*p15", 1)), + ("vmovshdup mem xmm", ("", 0)), + ("vmovshdup ymm ymm", ("1*p15", 1)), + ("vmovshdup mem ymm", ("", 0)), + ("vmovshdup zmm zmm", ("1*p5", 1)), + ("vmovshdup mem zmm", ("", 0)), + # https://www.felixcloutier.com/x86/movsldup + ("movsldup xmm xmm", ("1*p15", 1)), + ("movsldup mem xmm", ("", 0)), + ("vmovsldup xmm xmm", ("1*p15", 1)), + ("vmovsldup mem xmm", ("", 0)), + ("vmovsldup ymm ymm", ("1*p15", 1)), + ("vmovsldup mem ymm", ("", 0)), + ("vmovsldup zmm zmm", ("1*p5", 1)), + ("vmovsldup mem zmm", ("", 0)), + # https://www.felixcloutier.com/x86/movss + ("movss xmm xmm", ("1*p015", 1)), + ("movss mem xmm", ("", 0)), + ("vmovss xmm xmm xmm", ("1*p015", 1)), + ("vmovss mem xmm", ("", 0)), + ("vmovss xmm xmm", ("1*p015", 1)), + ("vmovss xmm mem", ("", 0)), + ("movss mem xmm", ("", 0)), + # https://www.felixcloutier.com/x86/movsx:movsxd + ("movsx gpr gpr", ("1*p0156", 1)), + ("movsx mem gpr", ("", 0)), + ("movsxd gpr gpr", ("", 0)), + ("movsxd mem gpr", ("", 0)), + ("movsb gpr gpr", ("1*p0156", 1)), # AT&T version + ("movsb mem gpr", ("", 0)), # AT&T version + ("movsw gpr gpr", ("1*p0156", 1)), # AT&T version + ("movsw mem gpr", ("", 0)), # AT&T version + ("movsl gpr gpr", ("1*p0156", 1)), # AT&T version + ("movsl mem gpr", ("", 0)), # AT&T version + ("movsq gpr gpr", ("1*p0156", 1)), # AT&T version + ("movsq mem gpr", ("", 0)), # AT&T version + # https://www.felixcloutier.com/x86/movupd + ("movupd xmm xmm", ("1*p015", 1)), + ("movupd mem xmm", ("", 0)), + ("movupd xmm mem", ("", 0)), + ("vmovupd xmm xmm", ("1*p015", 1)), + ("vmovupd mem xmm", ("", 0)), + ("vmovupd xmm mem", ("", 0)), + ("vmovupd ymm ymm", ("1*p015", 1)), + ("vmovupd mem ymm", ("", 0)), + ("vmovupd ymm mem", ("", 0)), + ("vmovupd zmm zmm", ("1*p05", 1)), + ("vmovupd mem zmm", ("", 0)), + ("vmovupd zmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movups + ("movups xmm xmm", ("1*p015", 1)), + ("movups mem xmm", ("", 0)), + ("movups xmm mem", ("", 0)), + ("vmovups xmm xmm", ("1*p015", 1)), + ("vmovups mem xmm", ("", 0)), + ("vmovups xmm mem", ("", 0)), + ("vmovups ymm ymm", ("1*p015", 1)), + ("vmovups mem ymm", ("", 0)), + ("vmovups ymm mem", ("", 0)), + ("vmovups zmm zmm", ("1*p05", 1)), + ("vmovups mem zmm", ("", 0)), + ("vmovups zmm mem", ("", 0)), + # https://www.felixcloutier.com/x86/movzx + ("movzx gpr gpr", ("1*p0156", 1)), + ("movzx mem gpr", ("", 0)), + ("movzb gpr gpr", ("1*p0156", 1)), # AT&T version + ("movzb mem gpr", ("", 0)), # AT&T version + ("movzw gpr gpr", ("1*p0156", 1)), # AT&T version + ("movzw mem gpr", ("", 0)), # AT&T version + ("movzl gpr gpr", ("1*p0156", 1)), # AT&T version + ("movzl mem gpr", ("", 0)), # AT&T version + ("movzq gpr gpr", ("1*p0156", 1)), # AT&T version + ("movzq mem gpr", ("", 0)), # AT&T version + # https://www.felixcloutier.com/x86/cmovcc + ("cmova gpr gpr", ("2*p06", 1)), + ("cmova mem gpr", ("", 0)), + ("cmovae gpr gpr", ("1*p06", 1)), + ("cmovae mem gpr", ("", 0)), + ("cmovb gpr gpr", ("2*p06", 1)), + ("cmovb mem gpr", ("", 0)), + ("cmovbe gpr gpr", ("2*p06", 1)), + ("cmovbe mem gpr", ("", 0)), + ("cmovc gpr gpr", ("1*p06", 1)), + ("cmovc mem gpr", ("", 0)), + ("cmove gpr gpr", ("1*p06", 1)), + ("cmove mem gpr", ("", 0)), + ("cmovg gpr gpr", ("1*p06", 1)), + ("cmovg mem gpr", ("", 0)), + ("cmovge gpr gpr", ("1*p06", 1)), + ("cmovge mem gpr", ("", 0)), + ("cmovl gpr gpr", ("1*p06", 1)), + ("cmovl mem gpr", ("", 0)), + ("cmovle gpr gpr", ("1*p06", 1)), + ("cmovle mem gpr", ("", 0)), + ("cmovna gpr gpr", ("2*p06", 1)), + ("cmovna mem gpr", ("", 0)), + ("cmovnae gpr gpr", ("1*p06", 1)), + ("cmovnae mem gpr", ("", 0)), + ("cmovnb gpr gpr", ("1*p06", 1)), + ("cmovnb mem gpr", ("", 0)), + ("cmovnbe gpr gpr", ("2*p06", 1)), + ("cmovnbe mem gpr", ("", 0)), + ("cmovnc gpr gpr", ("1*p06", 1)), + ("cmovnc mem gpr", ("", 0)), + ("cmovne gpr gpr", ("1*p06", 1)), + ("cmovne mem gpr", ("", 0)), + ("cmovng gpr gpr", ("1*p06", 1)), + ("cmovng mem gpr", ("", 0)), + ("cmovnge gpr gpr", ("1*p06", 1)), + ("cmovnge mem gpr", ("", 0)), + ("cmovnl gpr gpr", ("1*p06", 1)), + ("cmovnl mem gpr", ("", 0)), + ("cmovno gpr gpr", ("1*p06", 1)), + ("cmovno mem gpr", ("", 0)), + ("cmovnp gpr gpr", ("1*p06", 1)), + ("cmovnp mem gpr", ("", 0)), + ("cmovns gpr gpr", ("1*p06", 1)), + ("cmovns mem gpr", ("", 0)), + ("cmovnz gpr gpr", ("1*p06", 1)), + ("cmovnz mem gpr", ("", 0)), + ("cmovo gpr gpr", ("1*p06", 1)), + ("cmovo mem gpr", ("", 0)), + ("cmovp gpr gpr", ("1*p06", 1)), + ("cmovp mem gpr", ("", 0)), + ("cmovpe gpr gpr", ("1*p06", 1)), + ("cmovpe mem gpr", ("", 0)), + ("cmovpo gpr gpr", ("1*p06", 1)), + ("cmovpo mem gpr", ("", 0)), + ("cmovs gpr gpr", ("1*p06", 1)), + ("cmovs mem gpr", ("", 0)), + ("cmovz gpr gpr", ("1*p06", 1)), + ("cmovz mem gpr", ("", 0)), + # https://www.felixcloutier.com/x86/pmovmskb + ("pmovmskb mm gpr", ("1*p0", 1)), + ("pmovmskb xmm gpr", ("1*p0", 1)), + ("vpmovmskb xmm gpr", ("1*p0", 1)), + # https://www.felixcloutier.com/x86/pmovsx + ("pmovsxbw xmm xmm", ("1*p15", 1)), + ("pmovsxbw mem xmm", ("1*p15", 1)), + ("pmovsxbd xmm xmm", ("1*p15", 1)), + ("pmovsxbd mem xmm", ("1*p15", 1)), + ("pmovsxbq xmm xmm", ("1*p15", 1)), + ("pmovsxbq mem xmm", ("1*p15", 1)), + ("vpmovsxbw xmm xmm", ("1*p15", 1)), + ("vpmovsxbw mem xmm", ("1*p15", 1)), + ("vpmovsxbd xmm xmm", ("1*p15", 1)), + ("vpmovsxbd mem xmm", ("1*p15", 1)), + ("vpmovsxbq xmm xmm", ("1*p15", 1)), + ("vpmovsxbq mem xmm", ("1*p15", 1)), + ("vpmovsxbw ymm ymm", ("1*p5", 1)), + ("vpmovsxbw mem ymm", ("1*p5", 1)), + ("vpmovsxbd ymm ymm", ("1*p5", 1)), + ("vpmovsxbd mem ymm", ("1*p5", 1)), + ("vpmovsxbq ymm ymm", ("1*p5", 1)), + ("vpmovsxbq mem ymm", ("1*p5", 1)), + ("vpmovsxbw ymm zmm", ("1*p5", 3)), + ("vpmovsxbw mem zmm", ("1*p5", 1)), + # https://www.felixcloutier.com/x86/pmovzx + ("pmovzxbw xmm xmm", ("1*p15", 1)), + ("pmovzxbw mem xmm", ("1*p15", 1)), + ("vpmovzxbw xmm xmm", ("1*p15", 1)), + ("vpmovzxbw mem xmm", ("1*p15", 1)), + ("vpmovzxbw xmm ymm", ("1*p5", 1)), + ("vpmovzxbw mem ymm", ("1*p5", 1)), + ("vpmovzxbw ymm zmm", ("1*p5", 1)), + ("vpmovzxbw mem zmm", ("1*p5", 1)), + ################################################################# + # https://www.felixcloutier.com/x86/movbe + ("movbe gpr mem", ("1*p15", 6)), + ("movbe mem gpr", ("1*p15", 6)), + ################################################ + # https://www.felixcloutier.com/x86/movapd + # TODO with masking! + # https://www.felixcloutier.com/x86/movaps + # TODO with masking! + # https://www.felixcloutier.com/x86/movddup + # TODO with masking! + # https://www.felixcloutier.com/x86/movdqa:vmovdqa32:vmovdqa64 + # TODO with masking! + # https://www.felixcloutier.com/x86/movdqu:vmovdqu8:vmovdqu16:vmovdqu32:vmovdqu64 + # TODO with masking! + # https://www.felixcloutier.com/x86/movq2dq + ("movq2dq mm xmm", ("1*p0+1*p015", 1)), + # https://www.felixcloutier.com/x86/movsd + # TODO with masking! + # https://www.felixcloutier.com/x86/movshdup + # TODO with masking! + # https://www.felixcloutier.com/x86/movsldup + # TODO with masking! + # https://www.felixcloutier.com/x86/movss + # TODO with masking! + # https://www.felixcloutier.com/x86/movupd + # TODO with masking! + # https://www.felixcloutier.com/x86/movups + # TODO with masking! + # https://www.felixcloutier.com/x86/pmovsx + # TODO with masking! +] + + class MOVEntryBuilderIntelWithPort7AGU(MOVEntryBuilder): # for HSW, BDW, SKX and CSX @@ -774,6 +1235,7 @@ def get_description(arch, rhs_comment=None): "bdw": "\n".join([p7.process_item(*item) for item in bdw_mov_instructions]), "skx": "\n".join([p7.process_item(*item) for item in skx_mov_instructions]), "csx": "\n".join([p7.process_item(*item) for item in csx_mov_instructions]), + "icx": "\n".join([p9.process_item(*item) for item in icx_mov_instructions]), } description = descriptions[arch] @@ -795,7 +1257,7 @@ if __name__ == "__main__": import sys if len(sys.argv) != 2: - print("Usage: {} (snb|ivb|hsw|bdw|skx|csx)".format(sys.argv[0])) + print("Usage: {} (snb|ivb|hsw|bdw|skx|csx|icx)".format(sys.argv[0])) sys.exit(0) try: diff --git a/osaca/data/icx.yml b/osaca/data/icx.yml new file mode 100644 index 0000000..7cc1f74 --- /dev/null +++ b/osaca/data/icx.yml @@ -0,0 +1,6916 @@ +osaca_version: 0.4.8.dev0 +micro_architecture: Ice Lake Server +arch_code: ICX +isa: x86 +ROB_size: 352 # from wikichip +retired_uOps_per_cycle: 10 # from wikichip +scheduler_size: 97 # actually MORE than 97, number unknown +hidden_loads: false +load_latency: {gpr: 5.0, mm: 5.0, xmm: 5.0, ymm: 5.0, zmm: 5.0} +load_throughput: +- {base: gpr, index: gpr, offset: imd, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: gpr, index: gpr, offset: imd, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: gpr, index: gpr, offset: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: gpr, index: ~, offset: imd, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: gpr, index: ~, offset: imd, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: gpr, index: ~, offset: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: ~, index: gpr, offset: imd, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: ~, index: gpr, offset: imd, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: ~, index: gpr, offset: ~, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: ~, index: ~, offset: imd, scale: 1, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +- {base: ~, index: ~, offset: imd, scale: 8, port_pressure: [[1, '23'], [1, ['2D', '3D']]]} +load_throughput_default: [[1, '23'], [1, ['2D', '3D']]] +store_throughput: [] +store_throughput_default: [[1, '79'], [1, '48']] +ports: ['0', 0DV, '1', 1DV, '2', 2D, '3', 3D, '4', '5', '6', '7', '8', '9'] +port_model_scheme: | + +-----------------------------------------------------------------------------------------+ + | > 97 entry scheduler | + +-----------------------------------------------------------------------------------------+ + 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ + +-------+ +-------+ +-----+ +-----+ +-----+ +-------+ +-------+ +------+ +-----+ +------+ + | ALU | | ALU | | LD | | LD | | ST | | ALU | | ALU | |ST AGU| | ST | |ST AGU| + +-------+ +-------+ +-----+ +-----+ +-----+ +-------+ +-------+ +------+ +-----+ +------+ + +-------+ +-------+ +-----+ +-----+ +-------+ +-------+ + | BRANCH| | LEA | | AGU | | AGU | | LEA | | SHIFT | + +-------+ +-------+ +-----+ +-----+ +-------+ +-------+ + +-------+ +-------+ +-------+ +-------+ + | LEA | |INT MUL| | MUL Hi| | BRANCH| + +-------+ +-------+ +-------+ +-------+ + +-------+ +-------+ +-------+ +-------+ + | SHIFT | |INT DIV| |AVX ALU| | LEA | + +-------+ +-------+ +-------+ +-------+ + +-------+ +-------+ +-------+ + |AVX ALU| |AVX*ALU| | AVX | + +-------+ +-------+ | SHUF | + +-------+ +-------+ +-------+ + |AVX DIV| |AVX*FMA| +-------+ + +-------+ +-------+ |AVX FMA| + +-------+ +-------+ +-------+ + |AVX FMA| | AVX* | + +-------+ | SHUF | + +--------+ +-------+ + |AVX SHFT| +-------+ + +--------+ | AVX* | + | SHFT | + +-------+ * = no AVX-512 +instruction_forms: +########################################## +# assume all jmp instruction 0 +- name: [jo, jno, js, jns, jp, jpe, jnp, jpo] + operands: + - class: identifier + throughput: 0.0 + latency: 0.0 + port_pressure: [] +- name: [jc, jb, jae, jnb, jna, jbe, ja, jnbe] + operands: + - class: identifier + throughput: 0.0 + latency: 0.0 + port_pressure: [] +- name: [je, jz, jne, jnz, jl, jnge] + operands: + - class: identifier + throughput: 0.0 + latency: 0.0 + port_pressure: [] +- name: [jge, jnl, jle, jng, jg, jnle] + operands: + - class: identifier + throughput: 0.0 + latency: 0.0 + port_pressure: [] +########################################## +# assume all cmp's equal for now +# TODO add cmp instructions +- name: [cmp, cmpeqpd, cmpltpd, cmplepd, cmpunordpd, cmpneqpd, cmpnltpd, cmpnlepd, cmpordpd, cmpltps, cmpleps, cmpunordps, cmpneqps, cmpnltps, cmpnleps, cmpordps] + operands: + - class: register + name: '*' + - class: register + name: '*' + latency: 1.0 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: [cmp, cmpeqpd, cmpltpd, cmplepd, cmpunordpd, cmpneqpd, cmpnltpd, cmpnlepd, cmpordpd, cmpltps, cmpleps, cmpunordps, cmpneqps, cmpnltps, cmpnleps, cmpordps] + operands: + - class: immediate + imd: int + - class: register + name: '*' + latency: 1.0 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +########################################## +- name: mov # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: mov # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: mov # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: mov # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: immediate # ./generate_mov_entries.py icx + imd: int # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: mov # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: immediate # ./generate_mov_entries.py icx + imd: int # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movabs # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: immediate # ./generate_mov_entries.py icx + imd: int # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movapd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movapd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movapd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovapd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovapd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovapd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovapd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movaps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movaps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movaps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovaps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovaps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovaps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovaps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movddup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movddup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovddup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovddup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovddup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovddup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovddup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovddup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movdq2q # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015'], [1, '5']] # ./generate_mov_entries.py icx + throughput: 1.3333333333333333 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movdqa # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movdqa # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqa64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movdqu # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movdqu # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movdqu # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu8 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu16 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu32 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovdqu64 # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movhlps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovhlps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movhpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vmovhpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movhpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovhpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movhps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vmovhps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movhps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovhps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movlhps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovlhps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movlpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vmovlpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movlpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovlpd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movlps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vmovlps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movlps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovlps # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movmskpd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovmskpd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovmskpd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movmskps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovmskps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovmskps # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movntdq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movntdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntdqa # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movnti # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movntpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntpd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movntps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovntps # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movntq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [] # ./generate_mov_entries.py icx + throughput: 0.0 # ./generate_mov_entries.py icx + uops: 0 # ./generate_mov_entries.py icx +- name: movq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovq # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovsd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovsd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovsd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movshdup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movshdup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovshdup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovshdup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovshdup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovshdup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovshdup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovshdup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsldup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsldup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovsldup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovsldup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovsldup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovsldup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovsldup # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovsldup # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movss # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movss # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovss # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovss # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovss # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovss # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movss # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsx # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsx # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsxd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [] # ./generate_mov_entries.py icx + throughput: 0.0 # ./generate_mov_entries.py icx + uops: 0 # ./generate_mov_entries.py icx +- name: movsxd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsb # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsl # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsl # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movsq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movsq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movupd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movupd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movupd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovupd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovupd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovupd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovupd # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movups # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movups # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movups # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovups # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '015']] # ./generate_mov_entries.py icx + throughput: 0.3333333333333333 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovups # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '05']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vmovups # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: vmovups # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 0 # ./generate_mov_entries.py icx + port_pressure: [[1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movzx # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movzx # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movzb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movzb # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movzw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movzw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movzl # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movzl # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: movzq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0156']] # ./generate_mov_entries.py icx + throughput: 0.25 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: movzq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmova # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[2, '06']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmova # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovae # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovae # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[2, '06']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovb # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovbe # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[2, '06']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovbe # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovc # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovc # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmove # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmove # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovg # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovg # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovge # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovge # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovl # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovl # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovle # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovle # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovna # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[2, '06']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovna # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnae # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnae # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnb # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnbe # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[2, '06']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnbe # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnc # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnc # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovne # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovne # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovng # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovng # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnge # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnge # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnl # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnl # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovno # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovno # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnp # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnp # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovns # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovns # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovnz # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovnz # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovo # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovo # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovp # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovp # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovpe # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovpe # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovpo # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovpo # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovs # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovs # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: cmovz # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '06']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: cmovz # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 5 # ./generate_mov_entries.py icx + port_pressure: [[1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +- name: pmovmskb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovmskb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovmskb # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovsxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovsxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: pmovsxbd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovsxbd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: pmovsxbq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovsxbq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbd # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbd # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbq # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovsxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 3 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovsxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: pmovzxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: pmovzxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovzxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '15']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovzxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovzxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovzxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: vpmovzxbw # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: ymm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '5']] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 1 # ./generate_mov_entries.py icx +- name: vpmovzxbw # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: zmm # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '5'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 1.0 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movbe # with store # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + latency: 6 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '79'], [1, '48']] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movbe # with load # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: memory # ./generate_mov_entries.py icx + base: "*" # ./generate_mov_entries.py icx + offset: "*" # ./generate_mov_entries.py icx + index: "*" # ./generate_mov_entries.py icx + scale: "*" # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: gpr # ./generate_mov_entries.py icx + latency: 11 # ./generate_mov_entries.py icx + port_pressure: [[1, '15'], [1, '23'], [1, ['2D', '3D']]] # ./generate_mov_entries.py icx + throughput: 0.5 # ./generate_mov_entries.py icx + uops: 3 # ./generate_mov_entries.py icx +- name: movq2dq # ./generate_mov_entries.py icx + operands: # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: mm # ./generate_mov_entries.py icx + - class: register # ./generate_mov_entries.py icx + name: xmm # ./generate_mov_entries.py icx + latency: 1 # ./generate_mov_entries.py icx + port_pressure: [[1, '0'], [1, '015']] # ./generate_mov_entries.py icx + throughput: 1.3333333333333333 # ./generate_mov_entries.py icx + uops: 2 # ./generate_mov_entries.py icx +########################################## +- name: push + operands: + - class: immediate + imd: int + latency: 12 + port_pressure: [[1, '79'], [1, '48']] + throughput: 0.5 + uops: 2 +- name: push + operands: + - class: register + name: gpr + latency: 12 + port_pressure: [[1, '79'], [1, '48']] + throughput: 0.5 + uops: 2 +- name: push + operands: + - class: memory + base: "*" + offset: "*" + index: "*" + scale: "*" + latency: 12 + port_pressure: [[1, '79'], [1, '48']] + throughput: 0.5 + uops: 2 +- name: pop + operands: + - class: immediate + imd: int + latency: 5 + port_pressure: [[1, '23'], [1, ['2D', '3D']]] + throughput: 0.5 + uops: 2 +- name: pop + operands: + - class: register + name: gpr + latency: 5 + port_pressure: [[1, '23'], [1, ['2D', '3D']]] + throughput: 0.5 + uops: 2 +- name: pop + operands: + - class: memory + base: "*" + offset: "*" + index: "*" + scale: "*" + latency: 5 + port_pressure: [[1, '23'], [1, ['2D', '3D']]] + throughput: 0.5 + uops: 2 +########################################## +- name: adc # ibench + operands: # ibench + - class: register # ibench + name: gpr # ibench + - class: register # ibench + name: gpr # ibench + latency: 1 # ibench + port_pressure: [[1, '06']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: add # ibench + operands: # ibench + - class: register # ibench + name: gpr # ibench + - class: register # ibench + name: gpr # ibench + latency: 1 # ibench + port_pressure: [[1, '0156']] # ibench + throughput: 0.25 # ibench + uops: 1 # ibench +- name: add # ibench + operands: # ibench + - class: immediate # ibench + imd: int # ibench + - class: register # ibench + name: gpr # ibench + latency: 1 # ibench + port_pressure: [[1, '0156']] # ibench + throughput: 0.25 # ibench + uops: 1 # ibench +- name: addpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: addsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: mulsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: mulpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: mulss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: mulps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: addps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: addss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: rcpss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '0']] # ibench + throughput: 1.0 # ibench + uops: 1 # ibench +- name: rcpps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '0']] # ibench + throughput: 1.0 # ibench + uops: 1 # ibench +- name: vrcpps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '0']] # ibench + throughput: 1.0 # ibench + uops: 1 # ibench +- name: vrcpps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '0']] # ibench + throughput: 1.0 # ibench + uops: 1 # ibench +- name: vrcpss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '0']] # ibench + throughput: 1.0 # ibench + uops: 1 # ibench +- name: sqrtsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 22 # ibench + port_pressure: [[6, '0DV'], [1, '0']] # ibench + throughput: 6.0 # ibench + uops: 7 # ibench +- name: sqrtss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 16 # ibench + port_pressure: [[3, '0DV'], [1, '0']] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: vsqrtsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 22 # ibench + port_pressure: [[6, '0DV'], [1, '0']] # ibench + throughput: 6.0 # ibench + uops: 7 # ibench +- name: vsqrtss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 16 # ibench + port_pressure: [[3, '0DV'], [1, '0']] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: sub # ibench + operands: # ibench + - class: immediate # ibench + imd: int # ibench + - class: register # ibench + name: gpr # ibench + latency: 1 # ibench + port_pressure: [[1, '0156']] # ibench + throughput: 0.25 # ibench + uops: 1 # ibench +- name: sub # ibench + operands: # ibench + - class: register # ibench + name: gpr # ibench + - class: register # ibench + name: gpr # ibench + latency: 1 # ibench + port_pressure: [[1, '0156']] # ibench + throughput: 0.25 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddpd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vaddss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vdivpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 13 # ibench + port_pressure: [[1, '0'], [4, '0DV']] # ibench + throughput: 4.0 # ibench + uops: 5 # ibench +- name: vdivpd # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 13 # asmbench + port_pressure: [[1, '0'], [8, '0DV']] # asmbench + throughput: 8.0 # asmbench + uops: 9 # asmbench +- name: vdivpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 23 # ibench + port_pressure: [[1, '0'], [16, ['0DV']]] # ibench + throughput: 16.0 # ibench + uops: 17 # ibench +- name: vdivpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 23 # ibench + port_pressure: [[1, '0'], [16, ['0DV']]] # ibench + throughput: 16.0 # ibench + uops: 17 # ibench +- name: vdivpd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 13 # ibench + port_pressure: [[1, '0'], [8, ['0DV']]] # ibench + throughput: 8.0 # ibench + uops: 9 # ibench +- name: vdivpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 13 # ibench + port_pressure: [[1, '0'], [4, ['0DV']]] # ibench + throughput: 4.0 # ibench + uops: 5 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 18 # ibench + port_pressure: [[1, '0'], [10, ['0DV']]] # ibench + throughput: 10.0 # ibench + uops: 11 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 18 # ibench + port_pressure: [[1, '0'], [10, ['0DV']]] # ibench + throughput: 10.0 # ibench + uops: 11 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [5, ['0DV']]] # ibench + throughput: 5.0 # ibench + uops: 6 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [5, ['0DV']]] # ibench + throughput: 5.0 # ibench + uops: 6 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [3, ['0DV']]] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: vdivps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [3, ['0DV']]] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: vdivss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [3, ['0DV']]] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: vdivss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 11 # ibench + port_pressure: [[1, '0'], [3, ['0DV']]] # ibench + throughput: 3.0 # ibench + uops: 4 # ibench +- name: vdivsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 14 # ibench + port_pressure: [[1, '0'], [4, ['0DV']]] # ibench + throughput: 4.0 # ibench + uops: 5 # ibench +- name: vdivsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 14 # ibench + port_pressure: [[1, '0'], [4, ['0DV']]] # ibench + throughput: 4.0 # ibench + uops: 5 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213pd, vfmadd132pd, vfmadd231pd] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ps, vfmadd132ps, vfmadd231ps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213sd, vfmadd132sd, vfmadd231sd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213sd, vfmadd132sd, vfmadd231sd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ss, vfmadd132ss, vfmadd231ss] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmadd213ss, vfmadd132ss, vfmadd231ss] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213pd, vfmsub132pd, vfmsub231pd] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ps, vfmsub132ps, vfmsub231ps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213sd, vfmsub132sd, vfmsub231sd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213sd, vfmsub132sd, vfmsub231sd] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ss, vfmsub132ss, vfmsub231ss] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vfmsub213ss, vfmsub132ss, vfmsub231ss] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: xmm # ibench + latency: 20 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [3, ['2D', '3D']], [3, '23']] # ibench + throughput: 1.5 # ibench + uops: 9 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: ymm # ibench + latency: 22 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [6, ['2D', '3D']], [6, '23']] # ibench + throughput: 3.0 # ibench + uops: 16 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: zmm # ibench + latency: 24 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [14, ['2D', '3D']], [14, '23']] # ibench + throughput: 7.0 # ibench + uops: 31 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 20 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [3, ['2D', '3D']], [3, '23']] # ibench + throughput: 1.5 # ibench + uops: 9 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 22 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [6, ['2D', '3D']], [6, '23']] # ibench + throughput: 3.0 # ibench + uops: 16 # ibench +- name: vgatherdpd # with load # ibench + operands: # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 24 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [14, ['2D', '3D']], [14, '23']] # ibench + throughput: 7.0 # ibench + uops: 31 # ibench +- name: vgatherdps # with load # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: xmm # ibench + latency: 22 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [6, ['2D', '3D']], [6, '23']] # ibench + throughput: 3.0 # ibench + uops: 15 # ibench +- name: vgatherdps # with load # ibench + operands: # ibench + - class: memory # ibench + base: "*" # ibench + offset: "*" # ibench + index: "*" # ibench + scale: "*" # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 22 # ibench + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [6, ['2D', '3D']], [6, '23']] # ibench + throughput: 3.0 # ibench + uops: 15 # ibench +- name: vgatherdps # with load # uops.info + operands: # uops.info + - class: register # uops.info + name: ymm # uops.info + - class: memory # uops.info + base: "*" # uops.info + offset: "*" # uops.info + index: "*" # uops.info + scale: "*" # uops.info + - class: register # uops.info + name: ymm # uops.info + latency: 24 # uops.info + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [10, ['2D', '3D']], [10, '23']] + throughput: 5.0 # uops.info + uops: 23 # uops.info +- name: vgatherdps # with load # uops.info + operands: # uops.info + - class: memory # uops.info + base: "*" # uops.info + offset: "*" # uops.info + index: "*" # uops.info + scale: "*" # uops.info + - class: register # uops.info + name: ymm # uops.info + mask: True # ibench + latency: 24 # uops.info + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [10, ['2D', '3D']], [10, '23']] # uops.info + throughput: 5.0 # uops.info + uops: 23 #uops.info +- name: vgatherdps # with load # uops.info + operands: # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: memory # uops.info + base: "*" # uops.info + offset: "*" # uops.info + index: "*" # uops.info + scale: "*" # uops.info + - class: register # uops.info + name: zmm # uops.info + latency: 26 # uops.info + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [18, ['2D', '3D']], [18, '23']] # uops.info + throughput: 9.0 # uops.info + uops: 39 #uops.info +- name: vgatherdps # with load # uops.info + operands: # uops.info + - class: memory # uops.info + base: "*" # uops.info + offset: "*" # uops.info + index: "*" # uops.info + scale: "*" # uops.info + - class: register # uops.info + name: zmm # uops.info + mask: True # ibench + latency: 26 # uops.info + port_pressure: [[1, '015'], [1, '15'], [1, '0'], [18, ['2D', '3D']], [18, '23']] # uops.info + throughput: 9.0 # uops.info + uops: 39 #uops.info +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulpd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulps # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vmulss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 1 # ibench + port_pressure: [[1, '015']] # ibench + throughput: 0.3333333333333333 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 1 # ibench + port_pressure: [[1, '015']] # ibench + throughput: 0.3333333333333333 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 1 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 1 # ibench + port_pressure: [[1, '015']] # ibench + throughput: 0.3333333333333333 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 1 # ibench + port_pressure: [[1, '015']] # ibench + throughput: 0.3333333333333333 # ibench + uops: 1 # ibench +- name: vpaddd # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 1 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 6 # asmbench + port_pressure: [[2, '0'], [1, '05']] # asmbench + throughput: 2.5 # asmbench + uops: 3 # asmbench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrcp14pd, vrcp14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 6 # asmbench + port_pressure: [[2, '0'], [1, '05']] # asmbench + throughput: 2.5 # asmbench + uops: 3 # asmbench +- name: vrcpss # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vrcpps # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vrcpps # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 6 # asmbench + port_pressure: [[2, '0'], [1, '05']] # asmbench + throughput: 2.0 # asmbench + uops: 3 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 4 # asmbench + port_pressure: [[1, '0']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vrsqrt14pd, vrsqrt14ps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 6 # asmbench + port_pressure: [[2, '0'], [1, '05']] # asmbench + throughput: 2.0 # asmbench + uops: 3 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 13 # asmbench + port_pressure: [[1, '0'], [9, ['0DV']]] # asmbench + throughput: 9.0 # asmbench + uops: 10 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 13 # asmbench + port_pressure: [[1, '0'], [6, ['0DV']]] # asmbench + throughput: 6.0 # asmbench + uops: 7 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 12 # asmbench + port_pressure: [[1, '0'], [3, ['0DV']]] # asmbench + throughput: 3.0 # asmbench + uops: 4 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 12 # asmbench + port_pressure: [[1, '0'], [6, ['0DV']]] # asmbench + throughput: 6.0 # asmbench + uops: 7 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 13 # asmbench + port_pressure: [[1, '0'], [6, ['0DV']]] # asmbench + throughput: 6.0 # asmbench + uops: 7 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 13 # asmbench + port_pressure: [[1, '0'], [9, ['0DV']]] # asmbench + throughput: 9.0 # asmbench + uops: 10 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 12 # asmbench + port_pressure: [[1, '0'], [3, ['0DV']]] # asmbench + throughput: 3.0 # asmbench + uops: 4 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 12 # asmbench + port_pressure: [[1, '0'], [6, ['0DV']]] # asmbench + throughput: 6.0 # asmbench + uops: 7 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 23 # asmbench + port_pressure: [[1, '0'], [18, ['0DV']]] # asmbench + throughput: 18.0 # asmbench + uops: 19 # asmbench +- name: vrsqrtpd # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 23 # asmbench + port_pressure: [[1, '0'], [18, ['0DV']]] # asmbench + throughput: 18.0 # asmbench + uops: 19 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 19 # asmbench + port_pressure: [[1, '0'], [12, ['0DV']]] # asmbench + throughput: 12.0 # asmbench + uops: 13 # asmbench +- name: vrsqrtps # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 19 # asmbench + port_pressure: [[1, '0'], [12, ['0DV']]] # asmbench + throughput: 12.0 # asmbench + uops: 13 # asmbench +- name: inc + operands: + - class: register + name: gpr + latency: 1 + port_pressure: [[1, '0156']] + throughput: 0.25 + uops: 1 +- name: vinsertf128 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinserti128 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertf32x4 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertf32x8 + operands: + - class: immediate + imd: int + - class: register + name: ymm + - class: register + name: zmm + - class: register + name: zmm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertf64x2 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertf64x4 + operands: + - class: immediate + imd: int + - class: register + name: ymm + - class: register + name: zmm + - class: register + name: zmm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertps + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: xmm + - class: register + name: xmm + latency: 1 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinserti64x4 + operands: + - class: immediate + imd: int + - class: register + name: ymm + - class: register + name: zmm + - class: register + name: zmm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinserti64x2 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinserti32x8 + operands: + - class: immediate + imd: int + - class: register + name: ymm + - class: register + name: zmm + - class: register + name: zmm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vinsertf32x4 + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: ymm + - class: register + name: ymm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vcvtsi2ss + operands: + - class: register + name: gpr + - class: register + name: xmm + - class: register + name: xmm + latency: 2 + port_pressure: [[1, '01'], [2, '5']] + throughput: 2.0 + uops: 3 +- name: vcvtss2si # uops.info + operands: # uops.info + - class: register # uops.info + name: xmm # uops.info + - class: register # uops.info + name: gpr # uops.info + latency: 8 # uops.info + port_pressure: [[1, '0'], [1, '01'], [1, '5']] # uops.info + throughput: 1.5 # uops.info + uops: 3 # uops.info +- name: vcvtss2sd # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 6 # asmbench + port_pressure: [[1, '01'], [1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 2 # asmbench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + - class: register # ibench + name: ymm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: [vsubpd, vsubps] # ibench + operands: # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + - class: register # ibench + name: zmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '05']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vsubsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vsubsd # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vsubss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + mask: True # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: vsubss # ibench + operands: # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + - class: register # ibench + name: xmm # ibench + latency: 4 # ibench + port_pressure: [[1, '01']] # ibench + throughput: 0.5 # ibench + uops: 1 # ibench +- name: lea # uops.info + operands: # uops.info + - class: memory # uops.info + base: "*" # uops.info + offset: "*" # uops.info + index: "*" # uops.info + scale: "*" # uops.info + - class: register # uops.info + name: gpr # uops.info + latency: 6 # uops.info + port_pressure: [[1, '0156']] # uops.info + throughput: 0.5 # uops.info + uops: 3 # uops.info +- name: [shl, shr] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: gpr # uops.info + latency: 1 # uops.info + port_pressure: [[1, '06']] # uops.info + throughput: 0.5 # uops.info + uops: 1 # uops.info +- name: [vextractf128, vextracti128] + operands: + - class: immediate + imd: int + - class: register + name: ymm + - class: register + name: xmm + latency: 3 + port_pressure: [[1, '5']] + throughput: 1.0 + uops: 1 +- name: vextractps + operands: + - class: immediate + imd: int + - class: register + name: xmm + - class: register + name: gpr + latency: 4 + port_pressure: [[1, '0'], [1, '5']] + throughput: 1.0 + uops: 2 +- name: [vextractf32x4, vextracti32x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: ymm # uops.info + - class: register # uops.info + name: xmm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf32x4, vextracti32x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: xmm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf32x4, vextracti32x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: xmm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf32x4, vextracti32x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: ymm # uops.info + - class: register # uops.info + name: xmm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf32x8, vextracti32x8] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: ymm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf32x8, vextracti32x8] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: ymm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x2, vextracti64x2] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: ymm # uops.info + - class: register # uops.info + name: xmm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x2, vextracti64x2] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: ymm # uops.info + - class: register # uops.info + name: xmm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x2, vextracti64x2] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: xmm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x2, vextracti64x2] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: xmm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x4, vextracti64x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: ymm # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: [vextractf64x4, vextracti64x4] # uops.info + operands: # uops.info + - class: immediate # uops.info + imd: int # uops.info + - class: register # uops.info + name: zmm # uops.info + - class: register # uops.info + name: ymm # uops.info + mask: True # uops.info + latency: 3 # uops.info + port_pressure: [[1, '5']] # uops.info + throughput: 1.0 # uops.info + uops: 1 # uops.info +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpalignr # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vperm2f128, vperm2i128] # asmbench + operands: # asmbench + - class: immediate # asmbench + imd: int # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpermd # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpermd # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpermd # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: vpermd # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vpermpd, vpermps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vpermpd, vpermps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vpermpd, vpermps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vpermpd, vpermps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 3 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + - class: register # asmbench + name: xmm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + - class: register # asmbench + name: ymm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench +- name: [vunpckhpd, vunpckhps, vunpcklpd, vunpcklps] # asmbench + operands: # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + - class: register # asmbench + name: zmm # asmbench + mask: True # asmbench + latency: 1 # asmbench + port_pressure: [[1, '5']] # asmbench + throughput: 1.0 # asmbench + uops: 1 # asmbench diff --git a/osaca/data/isa/x86.yml b/osaca/data/isa/x86.yml index 27b48f4..29e7449 100644 --- a/osaca/data/isa/x86.yml +++ b/osaca/data/isa/x86.yml @@ -3292,6 +3292,27 @@ instruction_forms: name: "xmm" source: true destination: true + - name: push + operands: + - class: "memory" + base: "*" + offset: "*" + index: "*" + scale: "*" + source: true + destination: false + hidden_operands: + - class: "memory" + base: {name: 'rsp'} + offset: ~ + index: ~ + scale: 1 + source: false + destination: true + - class: "register" + name: "rsp" + source: true + destination: true - name: push operands: - class: "register" diff --git a/osaca/db_interface.py b/osaca/db_interface.py index 800289c..bb86954 100755 --- a/osaca/db_interface.py +++ b/osaca/db_interface.py @@ -260,7 +260,7 @@ def _create_db_operand_aarch64(operand): def _create_db_operand_x86(operand): """Get DB operand for AArch64 by operand string.""" - if operand == "r": + if operand.startswith("r"): return {"class": "register", "name": "gpr"} elif operand in "xyz": return {"class": "register", "name": operand + "mm"} diff --git a/osaca/osaca.py b/osaca/osaca.py index 2ff83c6..f7cc57f 100755 --- a/osaca/osaca.py +++ b/osaca/osaca.py @@ -27,6 +27,7 @@ SUPPORTED_ARCHS = [ "SKX", "CSX", "ICL", + "ICX", "ZEN1", "ZEN2", "TX2", @@ -37,7 +38,7 @@ SUPPORTED_ARCHS = [ ] DEFAULT_ARCHS = { "aarch64": "A64FX", - "x86": "SKX", + "x86": "ICX", } @@ -96,7 +97,7 @@ def create_parser(parser=None): parser.add_argument( "--arch", type=str, - help="Define architecture (SNB, IVB, HSW, BDW, SKX, CSX, ICL, ZEN1, ZEN2, TX2, N1, " + help="Define architecture (SNB, IVB, HSW, BDW, SKX, CSX, ICL, ICX, ZEN1, ZEN2, TX2, N1, " "A64FX, TSV110, A72). If no architecture is given, OSACA assumes a default uarch for x86/AArch64.", ) parser.add_argument( diff --git a/osaca/semantics/hw_model.py b/osaca/semantics/hw_model.py index ef34761..440ca55 100755 --- a/osaca/semantics/hw_model.py +++ b/osaca/semantics/hw_model.py @@ -273,7 +273,6 @@ class MachineModel(object): "zen1": "x86", "zen+": "x86", "zen2": "x86", - "icl": "x86", "con": "x86", # Intel Conroe "wol": "x86", # Intel Wolfdale "snb": "x86", @@ -289,6 +288,7 @@ class MachineModel(object): "cnl": "x86", "cfl": "x86", "icl": "x86", + "icx": "x86", } arch = arch.lower() if arch in arch_dict: