[
  {
    "EventName": "ex_ret_instr",
    "EventCode": "0xc0",
    "BriefDescription": "Retired instructions."
  },
  {
    "EventName": "ex_ret_ops",
    "EventCode": "0xc1",
    "BriefDescription": "Retired macro-ops."
  },
  {
    "EventName": "ex_ret_brn",
    "EventCode": "0xc2",
    "BriefDescription": "Retired branch instructions (all types of architectural control flow changes, including exceptions and interrupts)."
  },
  {
    "EventName": "ex_ret_brn_misp",
    "EventCode": "0xc3",
    "BriefDescription": "Retired branch instructions that were mispredicted."
  },
  {
    "EventName": "ex_ret_brn_tkn",
    "EventCode": "0xc4",
    "BriefDescription": "Retired taken branch instructions (all types of architectural control flow changes, including exceptions and interrupts)."
  },
  {
    "EventName": "ex_ret_brn_tkn_misp",
    "EventCode": "0xc5",
    "BriefDescription": "Retired taken branch instructions that were mispredicted."
  },
  {
    "EventName": "ex_ret_brn_far",
    "EventCode": "0xc6",
    "BriefDescription": "Retired far control transfers (far call, far jump, far return, IRET, SYSCALL and SYSRET, plus exceptions and interrupts). Far control transfers are not subject to branch prediction."
  },
  {
    "EventName": "ex_ret_near_ret",
    "EventCode": "0xc8",
    "BriefDescription": "Retired near returns (RET or RET Iw)."
  },
  {
    "EventName": "ex_ret_near_ret_mispred",
    "EventCode": "0xc9",
    "BriefDescription": "Retired near returns that were mispredicted. Each misprediction incurs the same penalty as that of a mispredicted conditional branch instruction."
  },
  {
    "EventName": "ex_ret_brn_ind_misp",
    "EventCode": "0xca",
    "BriefDescription": "Retired indirect branch instructions that were mispredicted (only EX mispredicts). Each misprediction incurs the same penalty as that of a mispredicted conditional branch instruction."
  },
  {
    "EventName": "ex_ret_brn_ind",
    "EventCode": "0xcc",
    "BriefDescription": "Retired indirect branch instructions."
  },
  {
    "EventName": "ex_ret_brn_cond",
    "EventCode": "0xd1",
    "BriefDescription": "Retired conditional branch instructions."
  },
  {
    "EventName": "ex_div_busy",
    "EventCode": "0xd3",
    "BriefDescription": "Cycles where the divider is busy."
  },
  {
    "EventName": "ex_div_count",
    "EventCode": "0xd4",
    "BriefDescription": "Divide ops executed."
  },
  {
    "EventName": "ex_no_retire.empty",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles where the thread does not retire any ops due to a lack of valid ops in the retire queue (may be caused by front-end bottlenecks or pipeline redirects).",
    "UMask": "0x01"
  },
  {
    "EventName": "ex_no_retire.not_complete",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles where the thread does not retire any ops as the oldest retire slot is waiting to be marked as completed.",
    "UMask": "0x02"
  },
  {
    "EventName": "ex_no_retire.other",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles where the thread does not retire any ops due to other reasons (retire breaks, traps, faults, etc.).",
    "UMask": "0x08"
  },
  {
    "EventName": "ex_no_retire.thread_not_selected",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles where the thread does not retire any ops as thread arbitration did not select the current thread.",
    "UMask": "0x10"
  },
  {
    "EventName": "ex_no_retire.load_not_complete",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles where the thread does not retire any ops due to missing load completion.",
    "UMask": "0xa2"
  },
  {
    "EventName": "ex_ret_ucode_instr",
    "EventCode": "0x1c1",
    "BriefDescription": "Retired microcoded instructions."
  },
  {
    "EventName": "ex_ret_ucode_ops",
    "EventCode": "0x1c2",
    "BriefDescription": "Retired microcode ops."
  },
  {
    "EventName": "ex_ret_brn_cond_misp",
    "EventCode": "0x1c7",
    "BriefDescription": "Retired conditional branch instructions that were mispredicted due to direction mismatch."
  },
  {
    "EventName": "ex_ret_brn_uncond_ind_near_misp",
    "EventCode": "0x1c8",
    "BriefDescription": "Retired unconditional indirect near branch instructions that were mispredicted."
  },
  {
    "EventName": "ex_ret_brn_uncond",
    "EventCode": "0x1c9",
    "BriefDescription": "Retired unconditional branch instructions."
  },
  {
    "EventName": "ex_tagged_ibs_ops.tagged",
    "EventCode": "0x1cf",
    "BriefDescription": "Execution IBS tagged ops.",
    "UMask": "0x01"
  },
  {
    "EventName": "ex_tagged_ibs_ops.tagged_ret",
    "EventCode": "0x1cf",
    "BriefDescription": "Execution IBS tagged ops that retired.",
    "UMask": "0x02"
  },
  {
    "EventName": "ex_tagged_ibs_ops.rollovers",
    "EventCode": "0x1cf",
    "BriefDescription": "Execution IBS periodic counter rollovers due to a previous tagged op not being IBS complete.",
    "UMask": "0x04"
  },
  {
    "EventName": "ex_tagged_ibs_ops.filtered",
    "EventCode": "0x1cf",
    "BriefDescription": "Execution IBS tagged ops that retired but were discarded due to IBS filtering.",
    "UMask": "0x08"
  },
  {
    "EventName": "ex_tagged_ibs_ops.valid",
    "EventCode": "0x1cf",
    "BriefDescription": "Execution IBS tagged ops that resulted in a valid sample and an IBS interrupt.",
    "UMask": "0x10"
  },
  {
    "EventName": "ex_ret_fused_instr",
    "EventCode": "0x1d0",
    "BriefDescription": "Retired fused instructions."
  },
  {
    "EventName": "ex_mprof_ibs_ops.tagged",
    "EventCode": "0x2c0",
    "BriefDescription": "Memory Profiler IBS tagged ops.",
    "UMask": "0x01"
  },
  {
    "EventName": "ex_mprof_ibs_ops.tagged_ret",
    "EventCode": "0x2c0",
    "BriefDescription": "Memory Profiler IBS tagged ops that retired.",
    "UMask": "0x02"
  },
  {
    "EventName": "ex_mprof_ibs_ops.rollovers",
    "EventCode": "0x2c0",
    "BriefDescription": "Memory Profiler IBS periodic counter rollovers due to a previous tagged op not being IBS complete.",
    "UMask": "0x04"
  },
  {
    "EventName": "ex_mprof_ibs_ops.filtered",
    "EventCode": "0x2c0",
    "BriefDescription": "Memory Profiler IBS tagged ops that retired but were discarded due to IBS filtering.",
    "UMask": "0x08"
  },
  {
    "EventName": "ex_mprof_ibs_ops.valid",
    "EventCode": "0x2c0",
    "BriefDescription": "Memory Profiler IBS tagged ops that resulted in a valid sample and an IBS interrupt.",
    "UMask": "0x10"
  }
]
