[
  {
    "EventName": "ls_locks.bus_lock",
    "EventCode": "0x25",
    "BriefDescription": "Retired Lock instructions which caused a bus lock.",
    "UMask": "0x01"
  },
  {
    "EventName": "ls_ret_cl_flush",
    "EventCode": "0x26",
    "BriefDescription": "Retired CLFLUSH instructions."
  },
  {
    "EventName": "ls_ret_cpuid",
    "EventCode": "0x27",
    "BriefDescription": "Retired CPUID instructions."
  },
  {
    "EventName": "ls_smi_rx",
    "EventCode": "0x2b",
    "BriefDescription": "SMIs received."
  },
  {
    "EventName": "ls_int_taken",
    "EventCode": "0x2c",
    "BriefDescription": "Interrupts taken."
  },
  {
    "EventName": "ls_not_halted_cyc",
    "EventCode": "0x76",
    "BriefDescription": "Core cycles not in halt."
  },
  {
    "EventName": "ex_ret_instr",
    "EventCode": "0xc0",
    "BriefDescription": "Retired instructions."
  },
  {
    "EventName": "ex_ret_ops",
    "EventCode": "0xc1",
    "BriefDescription": "Retired macro-ops."
  },
  {
    "EventName": "ex_div_busy",
    "EventCode": "0xd3",
    "BriefDescription": "Number of cycles the divider is busy."
  },
  {
    "EventName": "ex_div_count",
    "EventCode": "0xd4",
    "BriefDescription": "Divide ops executed."
  },
  {
    "EventName": "ex_no_retire.empty",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles with no retire due  to the 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 with no retire while the oldest op is waiting to be executed.",
    "UMask": "0x02"
  },
  {
    "EventName": "ex_no_retire.other",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles with no retire caused by other reasons (retire breaks, traps, faults, etc.).",
    "UMask": "0x08"
  },
  {
    "EventName": "ex_no_retire.thread_not_selected",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles with no retire because thread arbitration did not select the thread.",
    "UMask": "0x10"
  },
  {
    "EventName": "ex_no_retire.load_not_complete",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles with no retire while the oldest op is waiting for load data.",
    "UMask": "0xa2"
  },
  {
    "EventName": "ex_no_retire.all",
    "EventCode": "0xd6",
    "BriefDescription": "Cycles with no retire for any reason.",
    "UMask": "0x1b"
  },
  {
    "EventName": "ls_not_halted_p0_cyc.p0_freq_cyc",
    "EventCode": "0x120",
    "BriefDescription": "Reference cycles (P0 frequency) not in halt .",
    "UMask": "0x1"
  },
  {
    "EventName": "ex_ret_ucode_instr",
    "EventCode": "0x1c1",
    "BriefDescription": "Retired microcoded instructions."
  },
  {
    "EventName": "ex_ret_ucode_ops",
    "EventCode": "0x1c2",
    "BriefDescription": "Retired microcode ops."
  },
  {
    "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops",
    "EventCode": "0x1cf",
    "BriefDescription": "Ops tagged by IBS.",
    "UMask": "0x01"
  },
  {
    "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops_ret",
    "EventCode": "0x1cf",
    "BriefDescription": "Ops tagged by IBS that retired.",
    "UMask": "0x02"
  },
  {
    "EventName": "ex_ret_fused_instr",
    "EventCode": "0x1d0",
    "BriefDescription": "Retired fused instructions."
  }
]
