[
    {
        "ArchStdEvent": "BR_MIS_PRED",
        "PublicDescription": "Counts branches which are speculatively executed and mispredicted."
    },
    {
        "ArchStdEvent": "BR_PRED",
        "PublicDescription": "Counts all speculatively executed branches."
    },
    {
        "ArchStdEvent": "INST_SPEC",
        "PublicDescription": "Counts operations that have been speculatively executed."
    },
    {
        "ArchStdEvent": "OP_SPEC",
        "PublicDescription": "Counts micro-operations speculatively executed. This is the count of the number of micro-operations dispatched in a cycle."
    },
    {
        "ArchStdEvent": "UNALIGNED_LD_SPEC",
        "PublicDescription": "Counts unaligned memory read operations issued by the CPU. This event counts unaligned accesses (as defined by the actual instruction), even if they are subsequently issued as multiple aligned accesses. The event does not count preload operations (PLD, PLI)."
    },
    {
        "ArchStdEvent": "UNALIGNED_ST_SPEC",
        "PublicDescription": "Counts unaligned memory write operations issued by the CPU. This event counts unaligned accesses (as defined by the actual instruction), even if they are subsequently issued as multiple aligned accesses."
    },
    {
        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
        "PublicDescription": "Counts unaligned memory operations issued by the CPU. This event counts unaligned accesses (as defined by the actual instruction), even if they are subsequently issued as multiple aligned accesses."
    },
    {
        "ArchStdEvent": "LDREX_SPEC",
        "PublicDescription": "Counts Load-Exclusive operations that have been speculatively executed. For example: LDREX, LDX"
    },
    {
        "ArchStdEvent": "STREX_PASS_SPEC",
        "PublicDescription": "Counts store-exclusive operations that have been speculatively executed and have successfully completed the store operation."
    },
    {
        "ArchStdEvent": "STREX_FAIL_SPEC",
        "PublicDescription": "Counts store-exclusive operations that have been speculatively executed and have not successfully completed the store operation."
    },
    {
        "ArchStdEvent": "STREX_SPEC",
        "PublicDescription": "Counts store-exclusive operations that have been speculatively executed."
    },
    {
        "ArchStdEvent": "LD_SPEC",
        "PublicDescription": "Counts speculatively executed load operations including Single Instruction Multiple Data (SIMD) load operations."
    },
    {
        "ArchStdEvent": "ST_SPEC",
        "PublicDescription": "Counts speculatively executed store operations including Single Instruction Multiple Data (SIMD) store operations."
    },
    {
        "ArchStdEvent": "LDST_SPEC",
        "PublicDescription": "Counts load and store operations that have been speculatively executed."
    },
    {
        "ArchStdEvent": "DP_SPEC",
        "PublicDescription": "Counts speculatively executed logical or arithmetic instructions such as MOV/MVN operations."
    },
    {
        "ArchStdEvent": "ASE_SPEC",
        "PublicDescription": "Counts speculatively executed Advanced SIMD operations excluding load, store and move micro-operations that move data to or from SIMD (vector) registers."
    },
    {
        "ArchStdEvent": "VFP_SPEC",
        "PublicDescription": "Counts speculatively executed floating point operations. This event does not count operations that move data to or from floating point (vector) registers."
    },
    {
        "ArchStdEvent": "PC_WRITE_SPEC",
        "PublicDescription": "Counts speculatively executed operations which cause software changes of the PC. Those operations include all taken branch operations."
    },
    {
        "ArchStdEvent": "CRYPTO_SPEC",
        "PublicDescription": "Counts speculatively executed cryptographic operations except for PMULL and VMULL operations."
    },
    {
        "ArchStdEvent": "BR_IMMED_SPEC",
        "PublicDescription": "Counts direct branch operations which are speculatively executed."
    },
    {
        "ArchStdEvent": "BR_RETURN_SPEC",
        "PublicDescription": "Counts procedure return operations (RET, RETAA and RETAB) which are speculatively executed."
    },
    {
        "ArchStdEvent": "BR_INDIRECT_SPEC",
        "PublicDescription": "Counts indirect branch operations including procedure returns, which are speculatively executed. This includes operations that force a software change of the PC, other than exception-generating operations and direct branch instructions. Some examples of the instructions counted by this event include BR Xn, RET, etc..."
    },
    {
        "ArchStdEvent": "ISB_SPEC",
        "PublicDescription": "Counts ISB operations that are executed."
    },
    {
        "ArchStdEvent": "DSB_SPEC",
        "PublicDescription": "Counts DSB operations that are speculatively issued to Load/Store unit in the CPU."
    },
    {
        "ArchStdEvent": "DMB_SPEC",
        "PublicDescription": "Counts DMB operations that are speculatively issued to the Load/Store unit in the CPU. This event does not count implied barriers from load acquire/store release operations."
    },
    {
        "ArchStdEvent": "RC_LD_SPEC",
        "PublicDescription": "Counts any load acquire operations that are speculatively executed. For example: LDAR, LDARH, LDARB"
    },
    {
        "ArchStdEvent": "RC_ST_SPEC",
        "PublicDescription": "Counts any store release operations that are speculatively executed. For example: STLR, STLRH, STLRB"
    },
    {
        "ArchStdEvent": "SIMD_INST_SPEC",
        "PublicDescription": "Counts speculatively executed operations that are SIMD or SVE vector operations or Advanced SIMD non-scalar operations."
    },
    {
        "ArchStdEvent": "ASE_INST_SPEC",
        "PublicDescription": "Counts speculatively executed Advanced SIMD operations."
    },
    {
        "ArchStdEvent": "INT_SPEC",
        "PublicDescription": "Counts speculatively executed integer arithmetic operations."
    },
    {
        "ArchStdEvent": "PRF_SPEC",
        "PublicDescription": "Counts speculatively executed operations that prefetch memory. For example: Scalar: PRFM, SVE: PRFB, PRFD, PRFH, or PRFW."
    }
]
