[
    {
        "PEBS": "1",
        "PublicDescription": "ALL_BRANCHES counts the number of any branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0x0",
        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of branch instructions retired..."
    },
    {
        "PEBS": "1",
        "PublicDescription": "JCC counts the number of conditional branch (JCC) instructions retired. Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0x7e",
        "EventName": "BR_INST_RETIRED.JCC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of JCC branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "TAKEN_JCC counts the number of taken conditional branch (JCC) instructions retired. Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xfe",
        "EventName": "BR_INST_RETIRED.TAKEN_JCC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of taken JCC branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "CALL counts the number of near CALL branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xf9",
        "EventName": "BR_INST_RETIRED.CALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of near CALL branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "REL_CALL counts the number of near relative CALL branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xfd",
        "EventName": "BR_INST_RETIRED.REL_CALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of near relative CALL branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "IND_CALL counts the number of near indirect CALL branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xfb",
        "EventName": "BR_INST_RETIRED.IND_CALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of near indirect CALL branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "RETURN counts the number of near RET branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xf7",
        "EventName": "BR_INST_RETIRED.RETURN",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of near RET branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "NON_RETURN_IND counts the number of near indirect JMP and near indirect CALL branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xeb",
        "EventName": "BR_INST_RETIRED.NON_RETURN_IND",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of near indirect JMP and near indirect CALL branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "FAR counts the number of far branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0xbf",
        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of far branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "ALL_BRANCHES counts the number of any mispredicted branch instructions retired. This umask is an architecturally defined event. This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0x0",
        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "JCC counts the number of mispredicted conditional branches (JCC) instructions retired.  This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0x7e",
        "EventName": "BR_MISP_RETIRED.JCC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted JCC branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "TAKEN_JCC counts the number of mispredicted taken conditional branch (JCC) instructions retired.  This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0xfe",
        "EventName": "BR_MISP_RETIRED.TAKEN_JCC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted taken JCC branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "IND_CALL counts the number of mispredicted near indirect CALL branch instructions retired.  This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0xfb",
        "EventName": "BR_MISP_RETIRED.IND_CALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "RETURN counts the number of mispredicted near RET branch instructions retired.  This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0xf7",
        "EventName": "BR_MISP_RETIRED.RETURN",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired"
    },
    {
        "PEBS": "1",
        "PublicDescription": "NON_RETURN_IND counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired.  This event counts the number of retired branch instructions that were mispredicted by the processor, categorized by type. A branch misprediction occurs when the processor predicts that the branch would be taken, but it is not, or vice-versa.  When the misprediction is discovered, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
        "EventCode": "0xC5",
        "Counter": "0,1",
        "UMask": "0xeb",
        "EventName": "BR_MISP_RETIRED.NON_RETURN_IND",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired"
    },
    {
        "PublicDescription": "This event counts the number of micro-ops retired that were supplied from MSROM.",
        "EventCode": "0xC2",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "UOPS_RETIRED.MS",
        "SampleAfterValue": "2000003",
        "BriefDescription": "MSROM micro-ops retired"
    },
    {
        "PublicDescription": "This event counts the number of micro-ops retired. The processor decodes complex macro instructions into a sequence of simpler micro-ops. Most instructions are composed of one or two micro-ops. Some instructions are decoded into longer sequences such as repeat instructions, floating point transcendental instructions, and assists. In some cases micro-op sequences are fused or whole instructions are fused into one micro-op. See other UOPS_RETIRED events for differentiating retired fused and non-fused micro-ops.",
        "EventCode": "0xC2",
        "Counter": "0,1",
        "UMask": "0x10",
        "EventName": "UOPS_RETIRED.ALL",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Micro-ops retired"
    },
    {
        "PublicDescription": "This event counts the number of times that a program writes to a code section. Self-modifying code causes a severe penalty in all Intel? architecture processors.",
        "EventCode": "0xC3",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "MACHINE_CLEARS.SMC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Self-Modifying Code detected"
    },
    {
        "PublicDescription": "This event counts the number of times that pipeline stalled due to FP operations needing assists.",
        "EventCode": "0xC3",
        "Counter": "0,1",
        "UMask": "0x4",
        "EventName": "MACHINE_CLEARS.FP_ASSIST",
        "SampleAfterValue": "200003",
        "BriefDescription": "Stalls due to FP assists"
    },
    {
        "PublicDescription": "Machine clears happen when something happens in the machine that causes the hardware to need to take special care to get the right answer. When such a condition is signaled on an instruction, the front end of the machine is notified that it must restart, so no more instructions will be decoded from the current path.  All instructions \"older\" than this one will be allowed to finish.  This instruction and all \"younger\" instructions must be cleared, since they must not be allowed to complete.  Essentially, the hardware waits until the problematic instruction is the oldest instruction in the machine.  This means all older instructions are retired, and all pending stores (from older instructions) are completed.  Then the new path of instructions from the front end are allowed to start into the machine.  There are many conditions that might cause a machine clear (including the receipt of an interrupt, or a trap or a fault).  All those conditions (including but not limited to MACHINE_CLEARS.MEMORY_ORDERING, MACHINE_CLEARS.SMC, and MACHINE_CLEARS.FP_ASSIST) are captured in the ANY event. In addition, some conditions can be specifically counted (i.e. SMC, MEMORY_ORDERING, FP_ASSIST).  However, the sum of SMC, MEMORY_ORDERING, and FP_ASSIST machine clears will not necessarily equal the number of ANY.",
        "EventCode": "0xC3",
        "Counter": "0,1",
        "UMask": "0x8",
        "EventName": "MACHINE_CLEARS.ALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts all machine clears"
    },
    {
        "PublicDescription": "Counts the number of cycles when no uops are allocated and the ROB is full (less than 2 entries available).",
        "EventCode": "0xCA",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "NO_ALLOC_CYCLES.ROB_FULL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles when no uops are allocated and the ROB is full (less than 2 entries available)"
    },
    {
        "PublicDescription": "Counts the number of cycles when no uops are allocated and the alloc pipe is stalled waiting for a mispredicted jump to retire.  After the misprediction is detected, the front end will start immediately but the allocate pipe stalls until the mispredicted.",
        "EventCode": "0xCA",
        "Counter": "0,1",
        "UMask": "0x4",
        "EventName": "NO_ALLOC_CYCLES.MISPREDICTS",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles when no uops are allocated and the alloc pipe is stalled waiting for a mispredicted jump to retire.  After the misprediction is detected, the front end will start immediately but the allocate pipe stalls until the mispredicted "
    },
    {
        "EventCode": "0xCA",
        "Counter": "0,1",
        "UMask": "0x20",
        "EventName": "NO_ALLOC_CYCLES.RAT_STALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles when no uops are allocated and a RATstall is asserted."
    },
    {
        "PublicDescription": "The NO_ALLOC_CYCLES.NOT_DELIVERED event is used to measure front-end inefficiencies, i.e. when front-end of the machine is not delivering micro-ops to the back-end and the back-end is not stalled. This event can be used to identify if the machine is truly front-end bound.  When this event occurs, it is an indication that the front-end of the machine is operating at less than its theoretical peak performance.  Background: We can think of the processor pipeline as being divided into 2 broader parts: Front-end and Back-end. Front-end is responsible for fetching the instruction, decoding into micro-ops (uops) in machine understandable format and putting them into a micro-op queue to be consumed by back end. The back-end then takes these micro-ops, allocates the required resources.  When all resources are ready, micro-ops are executed. If the back-end is not ready to accept micro-ops from the front-end, then we do not want to count these as front-end bottlenecks.  However, whenever we have bottlenecks in the back-end, we will have allocation unit stalls and eventually forcing the front-end to wait until the back-end is ready to receive more UOPS. This event counts the cycles only when back-end is requesting more uops and front-end is not able to provide them. Some examples of conditions that cause front-end efficiencies are: Icache misses, ITLB misses, and decoder restrictions that limit the the front-end bandwidth.",
        "EventCode": "0xCA",
        "Counter": "0,1",
        "UMask": "0x50",
        "EventName": "NO_ALLOC_CYCLES.NOT_DELIVERED",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles when no uops are allocated, the IQ is empty, and no other condition is blocking allocation."
    },
    {
        "PublicDescription": "The NO_ALLOC_CYCLES.ALL event counts the number of cycles when the front-end does not provide any instructions to be allocated for any reason. This event indicates the cycles where an allocation stalls occurs, and no UOPS are allocated in that cycle.",
        "EventCode": "0xCA",
        "Counter": "0,1",
        "UMask": "0x3f",
        "EventName": "NO_ALLOC_CYCLES.ALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles when no uops are allocated for any reason."
    },
    {
        "PublicDescription": "Counts the number of cycles and allocation pipeline is stalled and is waiting for a free MEC reservation station entry.  The cycles should be appropriately counted in case of the cracked ops e.g. In case of a cracked load-op, the load portion is sent to M.",
        "EventCode": "0xCB",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "RS_FULL_STALL.MEC",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles and allocation pipeline is stalled and is waiting for a free MEC reservation station entry.  The cycles should be appropriately counted in case of the cracked ops e.g. In case of a cracked load-op, the load portion is sent to M"
    },
    {
        "EventCode": "0xCB",
        "Counter": "0,1",
        "UMask": "0x1f",
        "EventName": "RS_FULL_STALL.ALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of cycles the Alloc pipeline is stalled when any one of the RSs (IEC, FPC and MEC) is full. This event is a superset of all the individual RS stall event counts."
    },
    {
        "PublicDescription": "This event counts the number of instructions that retire execution. For instructions that consist of multiple micro-ops, this event counts the retirement of the last micro-op of the instruction. The counter continues counting during hardware interrupts, traps, and inside interrupt handlers.",
        "EventCode": "0xC0",
        "Counter": "0,1",
        "UMask": "0x0",
        "EventName": "INST_RETIRED.ANY_P",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Instructions retired"
    },
    {
        "PublicDescription": "Cycles the divider is busy.This event counts the cycles when the divide unit is unable to accept a new divide UOP because it is busy processing a previously dispatched UOP. The cycles will be counted irrespective of whether or not another divide UOP is waiting to enter the divide unit (from the RS). This event might count cycles while a divide is in progress even if the RS is empty.  The divide instruction is one of the longest latency instructions in the machine.  Hence, it has a special event associated with it to help determine if divides are delaying the retirement of instructions.",
        "EventCode": "0xCD",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "CYCLES_DIV_BUSY.ALL",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Cycles the divider is busy.  Does not imply a stall waiting for the divider."
    },
    {
        "PublicDescription": "This event counts the number of instructions that retire.  For instructions that consist of multiple micro-ops, this event counts exactly once, as the last micro-op of the instruction retires.  The event continues counting while instructions retire, including during interrupt service routines caused by hardware interrupts, faults or traps.  Background: Modern microprocessors employ extensive pipelining and speculative techniques.  Since sometimes an instruction is started but never completed, the notion of \"retirement\" is introduced.  A retired instruction is one that commits its states. Or stated differently, an instruction might be abandoned at some point. No instruction is truly finished until it retires.  This counter measures the number of completed instructions.  The fixed event is INST_RETIRED.ANY and the programmable event is INST_RETIRED.ANY_P.",
        "EventCode": "0x00",
        "Counter": "Fixed counter 1",
        "UMask": "0x1",
        "EventName": "INST_RETIRED.ANY",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Fixed Counter: Counts the number of instructions retired"
    },
    {
        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is a component in many key event ratios.  The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. In systems with a constant core frequency, this event can give you a measurement of the elapsed time while the core was not in halt state by dividing the event count by the core frequency. This event is architecturally defined and is a designated fixed counter.  CPU_CLK_UNHALTED.CORE and CPU_CLK_UNHALTED.CORE_P use the core frequency which may change from time to time.  CPU_CLK_UNHALTE.REF_TSC and CPU_CLK_UNHALTED.REF are not affected by core frequency changes but counts as if the core is running at the maximum frequency all the time.  The fixed events are CPU_CLK_UNHALTED.CORE and CPU_CLK_UNHALTED.REF_TSC and the programmable events are CPU_CLK_UNHALTED.CORE_P and CPU_CLK_UNHALTED.REF.",
        "EventCode": "0x00",
        "Counter": "Fixed counter 2",
        "UMask": "0x2",
        "EventName": "CPU_CLK_UNHALTED.CORE",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles"
    },
    {
        "PublicDescription": "Counts the number of reference cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is a component in many key event ratios.  The core frequency may change from time. This event is not affected by core frequency changes but counts as if the core is running at the maximum frequency all the time.  Divide this event count by core frequency to determine the elapsed time while the core was not in halt state.  Divide this event count by core frequency to determine the elapsed time while the core was not in halt state.  This event is architecturally defined and is a designated fixed counter.  CPU_CLK_UNHALTED.CORE and CPU_CLK_UNHALTED.CORE_P use the core frequency which may change from time to time.  CPU_CLK_UNHALTE.REF_TSC and CPU_CLK_UNHALTED.REF are not affected by core frequency changes but counts as if the core is running at the maximum frequency all the time.  The fixed events are CPU_CLK_UNHALTED.CORE and CPU_CLK_UNHALTED.REF_TSC and the programmable events are CPU_CLK_UNHALTED.CORE_P and CPU_CLK_UNHALTED.REF.",
        "EventCode": "0x00",
        "Counter": "Fixed counter 3",
        "UMask": "0x3",
        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Fixed Counter: Counts the number of unhalted reference clock cycles"
    },
    {
        "PublicDescription": "This event counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. In mobile systems the core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time.",
        "EventCode": "0x3C",
        "Counter": "0,1",
        "UMask": "0x0",
        "EventName": "CPU_CLK_UNHALTED.CORE_P",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Core cycles when core is not halted"
    },
    {
        "PublicDescription": "This event counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. In mobile systems the core frequency may change from time. This event is not affected by core frequency changes but counts as if the core is running at the maximum frequency all the time.",
        "EventCode": "0x3C",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "CPU_CLK_UNHALTED.REF",
        "SampleAfterValue": "2000003",
        "BriefDescription": "Reference cycles when core is not halted"
    },
    {
        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.ANY event counts the number of baclears for any type of branch.",
        "EventCode": "0xE6",
        "Counter": "0,1",
        "UMask": "0x1",
        "EventName": "BACLEARS.ALL",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of baclears"
    },
    {
        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.RETURN event counts the number of RETURN baclears.",
        "EventCode": "0xE6",
        "Counter": "0,1",
        "UMask": "0x8",
        "EventName": "BACLEARS.RETURN",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of RETURN baclears"
    },
    {
        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.COND event counts the number of JCC (Jump on Condtional Code) baclears.",
        "EventCode": "0xE6",
        "Counter": "0,1",
        "UMask": "0x10",
        "EventName": "BACLEARS.COND",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of JCC baclears"
    },
    {
        "PEBS": "2",
        "PublicDescription": "ALL_TAKEN_BRANCHES counts the number of all taken branch instructions retired.  Branch prediction predicts the branch target and enables the processor to begin executing instructions long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU) for prediction. This unit predicts the target address not only based on the EIP of the branch but also based on the execution path through which execution reached this EIP. The BPU can efficiently predict the following branch types: conditional branches, direct calls and jumps, indirect calls and jumps, returns.",
        "EventCode": "0xC4",
        "Counter": "0,1",
        "UMask": "0x80",
        "PEBScounters": "0,1",
        "EventName": "BR_INST_RETIRED.ALL_TAKEN_BRANCHES",
        "SampleAfterValue": "200003",
        "BriefDescription": "Counts the number of taken branch instructions retired"
    }
]