# =======================================================================================
#
#      Filename:  perfmon_zen4_events.txt
#
#      Description:  Event list for AMD Zen (Gen4)
#
#      Version:   5.3
#      Released:  10.11.2023
#
#      Author:   Thomas Gruber (tr), thomas.roehl@googlemail.com
#      Project:  likwid
#
#      Copyright (C) 2023 RRZE, University Erlangen-Nuremberg
#
#      This program is free software: you can redistribute it and/or modify it under
#      the terms of the GNU General Public License as published by the Free Software
#      Foundation, either version 3 of the License, or (at your option) any later
#      version.
#
#      This program is distributed in the hope that it will be useful, but WITHOUT ANY
#      WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
#      PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
#      You should have received a copy of the GNU General Public License along with
#      this program.  If not, see <http://www.gnu.org/licenses/>.
#
# =======================================================================================

# Fixed Events
# Not working well. With accessdaemon the counts are off. With perf_event, the
# event always returns zero
#EVENT_INST_RETIRED_ANY                      0x06 FIXC0
#UMASK_INST_RETIRED_ANY                      0x00

EVENT_ACTUAL_CPU_CLOCK                       0x01 FIXC1
UMASK_ACTUAL_CPU_CLOCK                       0x00

EVENT_APERF                                  0x01 FIXC1
UMASK_APERF                                  0x00

EVENT_MAX_CPU_CLOCK                          0x02 FIXC2
UMASK_MAX_CPU_CLOCK                          0x00

EVENT_MPERF                                  0x02 FIXC2
UMASK_MPERF                                  0x00

# Core-local Events

EVENT_MERGE                                 0xFFF PMC
UMASK_MERGE                                 0x00

# FP events

EVENT_RETIRED_X87_FP_OPS                    0x02 PMC
UMASK_RETIRED_X87_FP_OPS_ADD_SUB            0x01
UMASK_RETIRED_X87_FP_OPS_MULT               0x02
UMASK_RETIRED_X87_FP_OPS_DIV_SQRT           0x04

# Must be used with MERGE event
EVENT_RETIRED_SSE_AVX_FLOPS                 0x03 PMC
UMASK_RETIRED_SSE_AVX_FLOPS_ADD_SUB         0x01
UMASK_RETIRED_SSE_AVX_FLOPS_MULT            0x02
UMASK_RETIRED_SSE_AVX_FLOPS_DIV_SQRT        0x04
UMASK_RETIRED_SSE_AVX_FLOPS_FMA             0x08
UMASK_RETIRED_SSE_AVX_FLOPS_MAC             0x08
UMASK_RETIRED_SSE_AVX_FLOPS_BFLOAT_FMA      0x10
UMASK_RETIRED_SSE_AVX_FLOPS_BFLOAT_MAC      0x10
UMASK_RETIRED_SSE_AVX_FLOPS_ALL             0x1F

EVENT_RETIRED_SERIALIZING_OPS               0x05 PMC
UMASK_RETIRED_SERIALIZING_OPS_X87_CONTROL   0x01
UMASK_RETIRED_SERIALIZING_OPS_X87_BOTTOM    0x02
UMASK_RETIRED_SERIALIZING_OPS_SSE_CONTROL   0x04
UMASK_RETIRED_SERIALIZING_OPS_SSE_BOTTOM    0x08

EVENT_RETIRED_FP_OPS_BY_WIDTH               0x08 PMC
UMASK_RETIRED_FP_OPS_BY_WIDTH_X87           0x01
UMASK_RETIRED_FP_OPS_BY_WIDTH_MMX           0x02
UMASK_RETIRED_FP_OPS_BY_WIDTH_SCALAR        0x04
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK128       0x08
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK256       0x10
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK512       0x20

EVENT_RETIRED_FP_OPS_BY_TYPE                0x0A PMC
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_ADD     0x01
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_SUB     0x02
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_MUL     0x03
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_MAC     0x04
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_FMA     0x04
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_DIV     0x05
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_SQRT    0x06
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_CMP     0x07
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_CVT     0x08
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_BLEND   0x09
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_OTHER   0x0E
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_ALL     0x0F
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_ADD     0x10
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SUB     0x20
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_MUL     0x30
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_MAC     0x40
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_FMA     0x40
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_DIV     0x50
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SQRT    0x60
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_CMP     0x70
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_CVT     0x80
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_BLEND   0x90
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SHUFFLE 0xB0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_LOGICAL 0xD0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_OTHER   0xE0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_ALL     0xF0
UMASK_RETIRED_FP_OPS_BY_TYPE_ALL_ALL        0xFF

EVENT_RETIRED_INT_OPS                       0x0B PMC
UMASK_RETIRED_INT_OPS_MMX_ADD               0x01
UMASK_RETIRED_INT_OPS_MMX_SUB               0x02
UMASK_RETIRED_INT_OPS_MMX_MUL               0x03
UMASK_RETIRED_INT_OPS_MMX_MAC               0x04
UMASK_RETIRED_INT_OPS_MMX_FMA               0x04
UMASK_RETIRED_INT_OPS_MMX_CMP               0x07
UMASK_RETIRED_INT_OPS_MMX_SHIFT             0x09
UMASK_RETIRED_INT_OPS_MMX_MOV               0x0A
UMASK_RETIRED_INT_OPS_MMX_SHUFFLE           0x0B
UMASK_RETIRED_INT_OPS_MMX_PACK              0x0C
UMASK_RETIRED_INT_OPS_MMX_LOGICAL           0x0D
UMASK_RETIRED_INT_OPS_MMX_OTHER             0x0E
UMASK_RETIRED_INT_OPS_MMX_ALL               0x0F
UMASK_RETIRED_INT_OPS_SSE_AVX_ADD           0x10
UMASK_RETIRED_INT_OPS_SSE_AVX_SUB           0x20
UMASK_RETIRED_INT_OPS_SSE_AVX_MUL           0x30
UMASK_RETIRED_INT_OPS_SSE_AVX_MAC           0x40
UMASK_RETIRED_INT_OPS_SSE_AVX_FMA           0x40
UMASK_RETIRED_INT_OPS_SSE_AVX_AES           0x50
UMASK_RETIRED_INT_OPS_SSE_AVX_SHA           0x60
UMASK_RETIRED_INT_OPS_SSE_AVX_CMP           0x70
UMASK_RETIRED_INT_OPS_SSE_AVX_CLM           0x80
UMASK_RETIRED_INT_OPS_SSE_AVX_SHIFT         0x90
UMASK_RETIRED_INT_OPS_SSE_AVX_MOV           0x0A
UMASK_RETIRED_INT_OPS_SSE_AVX_SHUFFLE       0xB0
UMASK_RETIRED_INT_OPS_SSE_AVX_PACK          0xC0
UMASK_RETIRED_INT_OPS_SSE_AVX_LOGICAL       0xD0
UMASK_RETIRED_INT_OPS_SSE_AVX_OTHER         0xE0
UMASK_RETIRED_INT_OPS_SSE_AVX_ALL           0xF0
UMASK_RETIRED_INT_OPS_ALL_ALL               0xFF

EVENT_RETIRED_PACKED_FP_OPS                   0x0C PMC
UMASK_RETIRED_PACKED_FP_OPS_FP128_ADD         0x01
UMASK_RETIRED_PACKED_FP_OPS_FP128_SUB         0x02
UMASK_RETIRED_PACKED_FP_OPS_FP128_MUL         0x03
UMASK_RETIRED_PACKED_FP_OPS_FP128_MAC         0x04
UMASK_RETIRED_PACKED_FP_OPS_FP128_FMA         0x04
UMASK_RETIRED_PACKED_FP_OPS_FP128_DIV         0x05
UMASK_RETIRED_PACKED_FP_OPS_FP128_SQRT        0x06
UMASK_RETIRED_PACKED_FP_OPS_FP128_CMP         0x07
UMASK_RETIRED_PACKED_FP_OPS_FP128_CVT         0x08
UMASK_RETIRED_PACKED_FP_OPS_FP128_BLEND       0x09
UMASK_RETIRED_PACKED_FP_OPS_FP128_SHUFFLE     0x0B
UMASK_RETIRED_PACKED_FP_OPS_FP128_LOGICAL     0x0D
UMASK_RETIRED_PACKED_FP_OPS_FP128_OTHER       0x0E
UMASK_RETIRED_PACKED_FP_OPS_FP128_ALL         0x0F
UMASK_RETIRED_PACKED_FP_OPS_FP256_ADD         0x10
UMASK_RETIRED_PACKED_FP_OPS_FP256_SUB         0x20
UMASK_RETIRED_PACKED_FP_OPS_FP256_MUL         0x30
UMASK_RETIRED_PACKED_FP_OPS_FP256_MAC         0x40
UMASK_RETIRED_PACKED_FP_OPS_FP256_FMA         0x40
UMASK_RETIRED_PACKED_FP_OPS_FP256_DIV         0x50
UMASK_RETIRED_PACKED_FP_OPS_FP256_SQRT        0x60
UMASK_RETIRED_PACKED_FP_OPS_FP256_CMP         0x70
UMASK_RETIRED_PACKED_FP_OPS_FP256_CVT         0x80
UMASK_RETIRED_PACKED_FP_OPS_FP256_BLEND       0x90
UMASK_RETIRED_PACKED_FP_OPS_FP256_SHUFFLE     0xB0
UMASK_RETIRED_PACKED_FP_OPS_FP256_LOGICAL     0xD0
UMASK_RETIRED_PACKED_FP_OPS_FP256_OTHER       0xE0
UMASK_RETIRED_PACKED_FP_OPS_FP256_ALL         0xF0
UMASK_RETIRED_PACKED_FP_OPS_ALL_ALL           0xFF

EVENT_RETIRED_PACKED_INT_OPS                    0x0D PMC
UMASK_RETIRED_PACKED_INT_OPS_INT128_ADD         0x01
UMASK_RETIRED_PACKED_INT_OPS_INT128_SUB         0x02
UMASK_RETIRED_PACKED_INT_OPS_INT128_MUL         0x03
UMASK_RETIRED_PACKED_INT_OPS_INT128_MAC         0x04
UMASK_RETIRED_PACKED_INT_OPS_INT128_FMA         0x04
UMASK_RETIRED_PACKED_INT_OPS_INT128_AES         0x05
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHA         0x06
UMASK_RETIRED_PACKED_INT_OPS_INT128_CMP         0x07
UMASK_RETIRED_PACKED_INT_OPS_INT128_CLM         0x08
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHIFT       0x09
UMASK_RETIRED_PACKED_INT_OPS_INT128_MOV         0x0A
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHUFFLE     0x0B
UMASK_RETIRED_PACKED_INT_OPS_INT128_PACK        0x0C
UMASK_RETIRED_PACKED_INT_OPS_INT128_LOGICAL     0x0D
UMASK_RETIRED_PACKED_INT_OPS_INT128_OTHER       0x0E
UMASK_RETIRED_PACKED_INT_OPS_INT128_ALL         0x0F
UMASK_RETIRED_PACKED_INT_OPS_INT256_ADD         0x10
UMASK_RETIRED_PACKED_INT_OPS_INT256_SUB         0x20
UMASK_RETIRED_PACKED_INT_OPS_INT256_MUL         0x30
UMASK_RETIRED_PACKED_INT_OPS_INT256_MAC         0x40
UMASK_RETIRED_PACKED_INT_OPS_INT256_FMA         0x40
UMASK_RETIRED_PACKED_INT_OPS_INT256_CMP         0x70
UMASK_RETIRED_PACKED_INT_OPS_INT256_SHIFT       0x90
UMASK_RETIRED_PACKED_INT_OPS_INT256_MOV         0xA0
UMASK_RETIRED_PACKED_INT_OPS_INT256_SHUFFLE     0xB0
UMASK_RETIRED_PACKED_INT_OPS_INT256_PACK        0xC0
UMASK_RETIRED_PACKED_INT_OPS_INT256_LOGICAL     0xD0
UMASK_RETIRED_PACKED_INT_OPS_INT256_OTHER       0xE0
UMASK_RETIRED_PACKED_INT_OPS_INT256_ALL         0xF0
UMASK_RETIRED_PACKED_INT_OPS_ALL_ALL            0xFF

EVENT_FP_DISPATCH_FAULTS                    0x0E PMC
UMASK_FP_DISPATCH_FAULTS_X87_FILL           0x01
UMASK_FP_DISPATCH_FAULTS_XMM_FILL           0x02
UMASK_FP_DISPATCH_FAULTS_YMM_FILL           0x04
UMASK_FP_DISPATCH_FAULTS_YMM_SPILL          0x08

# Events derived from documented performance metrics
EVENT_MIXED_SSE_AVX_STALLS                  0x0E PMC
UMASK_MIXED_SSE_AVX_STALLS                  0x0E

# Load/Store (LS) events

EVENT_BAD_STATUS2                           0x24 PMC
UMASK_BAD_STATUS2_STLI_NO_STATE             0x01

EVENT_RETIRED_LOCK_INSTR                    0x25 PMC
UMASK_RETIRED_LOCK_INSTR_BUS_LOCK           0x01

EVENT_RETIRED_CLFLUSH                       0x26 PMC
UMASK_RETIRED_CLFLUSH                       0x00

EVENT_RETIRED_CPUID                         0x27 PMC
UMASK_RETIRED_CPUID                         0x00

EVENT_LS_DISPATCH                           0x29 PMC
UMASK_LS_DISPATCH_LOADS                     0x01
UMASK_LS_DISPATCH_STORES                    0x02
UMASK_LS_DISPATCH_LOAD_OP_STORES            0x04
# Added by T. Gruber
UMASK_LS_DISPATCH_ALL                       0x07

EVENT_SMI_RECEIVED                          0x2B PMC
UMASK_SMI_RECEIVED                          0x00

EVENT_INTERRUPTS_TAKEN                      0x2C PMC
UMASK_INTERRUPTS_TAKEN                      0x01

EVENT_ST_TO_LD_FWD                          0x35 PMC
UMASK_ST_TO_LD_FWD                          0x00

EVENT_ST_COMMIT_CANCELS2                    0x37 PMC
UMASK_ST_COMMIT_CANCELS2_WCB_FULL           0x01

# Each increment represents an up to 32-byte access
EVENT_DATA_CACHE_ACCESSES                   0x40 PMC
UMASK_DATA_CACHE_ACCESSES                   0x00

EVENT_LS_MAB_ALLOC                          0x41 PMC
UMASK_LS_MAB_ALLOC_LD_ST                    0x3F
UMASK_LS_MAB_ALLOC_HWPF                     0x40
UMASK_LS_MAB_ALLOC_ALL                      0x7F

EVENT_DEMAND_DATA_CACHE_FILLS                               0x43 PMC
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_L2                      0x01
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_CCX                     0x02
UMASK_DEMAND_DATA_CACHE_FILLS_INT_CACHE                     0x02 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR           0x04
UMASK_DEMAND_DATA_CACHE_FILLS_EXT_CACHE_LOCAL               0x04 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_DRAM_IO_NEAR                  0x08
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_DRAM                    0x08 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_ALL                     0x0F # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_EXT_CACHE_REMOTE              0x10 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR            0x10
UMASK_DEMAND_DATA_CACHE_FILLS_REMOTE_DRAM                   0x40 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_DRAM_IO_FAR                   0x40
UMASK_DEMAND_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_DEMAND_DATA_CACHE_FILLS_REMOTE_ALL                    0xD0 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_ALL                           0xDF # Added by T. Gruber

EVENT_ANY_DATA_CACHE_FILLS                              0x44 PMC
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_L2                     0x01
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_CCX                    0x02
UMASK_ANY_DATA_CACHE_FILLS_INT_CACHE                    0x02 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR          0x04
UMASK_ANY_DATA_CACHE_FILLS_EXT_CACHE_LOCAL              0x04 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_DRAM_IO_NEAR                 0x08
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_DRAM                   0x08 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_ALL                    0x0F # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_EXT_CACHE_REMOTE             0x10 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR           0x10
UMASK_ANY_DATA_CACHE_FILLS_REMOTE_DRAM                  0x40 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_DRAM_IO_FAR                  0x40
UMASK_ANY_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR  0x80
UMASK_ANY_DATA_CACHE_FILLS_REMOTE_ALL                   0xD0 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_ALL                          0xDF # Added by T. Gruber

EVENT_L1_DTLB_MISS                                      0x45 PMC
UMASK_L1_DTLB_MISS_4K_L2_HIT                            0x01
UMASK_L1_DTLB_MISS_COALESCED_PAGE_HIT                   0x02
UMASK_L1_DTLB_MISS_2M_L2_HIT                            0x04
UMASK_L1_DTLB_MISS_1G_L2_HIT                            0x08
UMASK_L1_DTLB_MISS_ANY_L2_HIT                           0x0F # Added by T. Gruber
UMASK_L1_DTLB_MISS_4K_L2_MISS                           0x10
UMASK_L1_DTLB_MISS_COALESCED_PAGE_MISS                  0x20
UMASK_L1_DTLB_MISS_2M_L2_MISS                           0x40
UMASK_L1_DTLB_MISS_1G_L2_MISS                           0x80
UMASK_L1_DTLB_MISS_ANY_L2_MISS                          0xF0 # Added by T. Gruber

EVENT_MISALIGNED_LOADS                      0x47 PMC
UMASK_MISALIGNED_LOADS_MA_64B               0x01
UMASK_MISALIGNED_LOADS_MA_4K                0x02
UMASK_MISALIGNED_LOADS_MA_ANY               0x03 # Added by T. Gruber

EVENT_PREF_INSTR_DISPATCHED                 0x4B PMC
UMASK_PREF_INSTR_DISPATCHED_PREFETCH        0x01
UMASK_PREF_INSTR_DISPATCHED_PREFETCHW       0x02
UMASK_PREF_INSTR_DISPATCHED_PREFETCHNTA     0x04
UMASK_PREF_INSTR_DISPATCHED_ANY             0x07 # Added by T. Gruber

EVENT_INEFFECTIVE_SW_PREF                   0x52 PMC
UMASK_INEFFECTIVE_SW_PREF_DATA_PIPE_SW_PF_DC_HIT    0x01
UMASK_INEFFECTIVE_SW_PREF_MAB_MCH_CNT       0x02

EVENT_SWPREF_DATA_CACHE_FILLS                   0x59 PMC
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_L2          0x01
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_CCX         0x02
UMASK_SWPREF_DATA_CACHE_FILLS_INT_CACHE         0x02 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR   0x04
UMASK_SWPREF_DATA_CACHE_FILLS_EXT_CACHE_LOCAL   0x04 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_DRAM_IO_NEAR      0x08
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_DRAM        0x08 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_ALL         0x0F # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_EXT_CACHE_REMOTE  0x10 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR  0x10
UMASK_SWPREF_DATA_CACHE_FILLS_REMOTE_DRAM       0x40 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_DRAM_IO_FAR       0x40
UMASK_SWPREF_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_SWPREF_DATA_CACHE_FILLS_REMOTE_ALL        0xD0 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_ALL               0xDF # Added by T. Gruber

EVENT_HWPREF_DATA_CACHE_FILLS                   0x5A PMC
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_L2          0x01
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_CCX         0x02
UMASK_HWPREF_DATA_CACHE_FILLS_INT_CACHE         0x02 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR   0x04
UMASK_HWPREF_DATA_CACHE_FILLS_EXT_CACHE_LOCAL   0x04 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_DRAM_IO_NEAR      0x08
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_DRAM        0x08 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_ALL         0x0F # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_EXT_CACHE_REMOTE  0x10 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR  0x10
UMASK_HWPREF_DATA_CACHE_FILLS_REMOTE_DRAM       0x40 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_DRAM_IO_FAR       0x40
UMASK_HWPREF_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_HWPREF_DATA_CACHE_FILLS_REMOTE_ALL        0xD0 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_ALL               0xDF # Added by T. Gruber

EVENT_COUNT_OF_ALLOC_MABS                   0x5F PMC
UMASK_COUNT_OF_ALLOC_MABS                   0x00

EVENT_CPU_CLOCKS_UNHALTED                    0x76 PMC
UMASK_CPU_CLOCKS_UNHALTED                    0x00

EVENT_TLB_FLUSHES                            0x78 PMC
UMASK_TLB_FLUSHES_ALL                        0xFF

EVENT_P0_FREQ_CYCLES_UNHALTED               0x120 PMC
UMASK_P0_FREQ_CYCLES_UNHALTED               0x01

# IC and BP events

# The number of 64-byte instruction cache lines fulfilled from the L2 cache.
EVENT_ICACHE_L2_REFILLS                     0x82     PMC
UMASK_ICACHE_L2_REFILLS                     0x00

# The number of 64-byte instruction cache line fulfilled from system memory or another cache.
EVENT_ICACHE_SYSTEM_REFILLS                 0x83     PMC
UMASK_ICACHE_SYSTEM_REFILLS                 0x00

EVENT_L1_ITLB_MISS_L2_ITLB_HIT              0x84     PMC
UMASK_L1_ITLB_MISS_L2_ITLB_HIT              0x00

EVENT_L1_ITLB_MISS_L2_ITLB_MISS                 0x85     PMC
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_4K           0x01
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_2M           0x02
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_1G           0x04
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_COALESCED_4K    0x08
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_ANY             0x0F # Added by T. Gruber

EVENT_L2_BTB_CORRECT                    0x8B PMC
UMASK_L2_BTB_CORRECT                    0x00

EVENT_DYNAMIC_INDIRECT_PREDICTIONS          0x8E PMC
UMASK_DYNAMIC_INDIRECT_PREDICTIONS          0x00

EVENT_DECODE_REDIRECTS                      0x91 PMC
UMASK_DECODE_REDIRECTS                      0x00

EVENT_L1_TLB_FETCH_HIT                  0x94 PMC
UMASK_L1_TLB_FETCH_HIT_IF_4K            0x01
UMASK_L1_TLB_FETCH_HIT_IF_2M            0x04
UMASK_L1_TLB_FETCH_HIT_IF_1G            0x08
UMASK_L1_TLB_FETCH_HIT_IF_ANY           0x0D # Added by T. Gruber

EVENT_RESYNCS_OR_NC_REDIRECTS           0x96 PMC
UMASK_RESYNCS_OR_NC_REDIRECTS           0x00

EVENT_IC_TAG                                0x18E PMC
UMASK_IC_TAG_HIT                            0x07
UMASK_IC_TAG_MISS                           0x18
UMASK_IC_TAG_ANY                            0x1F

EVENT_OC_CACHE                              0x28F PMC
UMASK_OC_CACHE_HIT                          0x03
UMASK_OC_CACHE_MISS                         0x04
UMASK_OC_CACHE_ANY                          0x07


# DE Events

EVENT_UOPS_QUEUE_EMTPY                  0xA9 PMC
UMASK_UOPS_QUEUE_EMTPY                  0x00

EVENT_UOPS_DISP                           0xAA PMC
UMASK_UOPS_DISP_FROM_DEC                  0x01
UMASK_UOPS_DISP_FROM_OPCACHE              0x02
UMASK_UOPS_DISP_FROM_LOOP_BUFFER          0x04

EVENT_TYPE_UOPS_FROM_DECODER                0xAB PMC
UMASK_TYPE_UOPS_FROM_DECODER_FP             0x04
UMASK_TYPE_UOPS_FROM_DECODER_INT            0x08

# Events derived from documented performance metrics
EVENT_MACRO_OPS_DISPATCHED                  0xAB PMC
UMASK_MACRO_OPS_DISPATCHED_ALL_FP           0x84
UMASK_MACRO_OPS_DISPATCHED_ALL_INT          0x88

EVENT_DISPATCH_RESOURCE_STALL_CYCLES_1                          0xAE PMC
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_INT_REGFILE              0x01
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_LOAD_QUEUE               0x02
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_STORE_QUEUE              0x04
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_TAKEN_BRANCH             0x10
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_REGFILE               0x20
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_SCHEDULER             0x40
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_FLUSH                 0x80

EVENT_DISPATCH_RESOURCE_STALL_CYCLES_2                          0xAF PMC
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_0_TOKENS   0x01
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_1_TOKENS   0x02
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_2_TOKENS   0x04
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_3_TOKENS   0x08
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_RETIRE_TOKEN_STALL       0x20

EVENT_DISPATCH_STALLS_PER_SLOT                  0x1A0 PMC
UMASK_DISPATCH_STALLS_PER_SLOT_FRONTEND         0x01
UMASK_DISPATCH_STALLS_PER_SLOT_BACKEND          0x1E
UMASK_DISPATCH_STALLS_PER_SLOT_OTHER_SMT_THREAD 0x60

EVENT_ADDITIONAL_DISPATCH_RESOURCE_STALLS       0x1A2 PMC
UMASK_ADDITIONAL_DISPATCH_RESOURCE_STALLS       0x30

# EX (SC) Events

EVENT_RETIRED_INSTRUCTIONS                    0xC0     PMC
UMASK_RETIRED_INSTRUCTIONS                    0x00

EVENT_RETIRED_UOPS                            0xC1     PMC
UMASK_RETIRED_UOPS                            0x00

EVENT_RETIRED_BRANCH_INSTR                    0xC2     PMC
UMASK_RETIRED_BRANCH_INSTR                    0x00

EVENT_RETIRED_MISP_BRANCH_INSTR               0xC3     PMC
UMASK_RETIRED_MISP_BRANCH_INSTR               0x00

EVENT_RETIRED_TAKEN_BRANCH_INSTR              0xC4     PMC
UMASK_RETIRED_TAKEN_BRANCH_INSTR              0x00

EVENT_RETIRED_TAKEN_MISP_BRANCH_INSTR         0xC5     PMC
UMASK_RETIRED_TAKEN_MISP_BRANCH_INSTR         0x00

EVENT_RETIRED_FAR_CONTROL_TRANSFERS           0xC6     PMC
UMASK_RETIRED_FAR_CONTROL_TRANSFERS           0x00

EVENT_RETIRED_NEAR_RETURNS                    0xC8     PMC
UMASK_RETIRED_NEAR_RETURNS                    0x00

EVENT_RETIRED_NEAR_RETURNS_MISP               0xC9     PMC
UMASK_RETIRED_NEAR_RETURNS_MISP               0x00

EVENT_RETIRED_INDIRECT_BRANCHES_MISP          0xCA     PMC
UMASK_RETIRED_INDIRECT_BRANCHES_MISP          0x00

EVENT_RETIRED_MMX_FP_INSTR                    0xCB     PMC
UMASK_RETIRED_MMX_FP_INSTR_X87                0x01
UMASK_RETIRED_MMX_FP_INSTR_MMX                0x02
UMASK_RETIRED_MMX_FP_INSTR_SSE                0x04
UMASK_RETIRED_MMX_FP_INSTR_ALL                0x07 # Added by T. Gruber

EVENT_RETIRED_INDIRECT_BRANCH_INSTR           0xCC     PMC
UMASK_RETIRED_INDIRECT_BRANCH_INSTR           0x00

EVENT_RETIRED_COND_BRANCH_INSTR               0xD1 PMC
UMASK_RETIRED_COND_BRANCH_INSTR               0x00

EVENT_DIV_BUSY_CYCLES                         0xD3 PMC
UMASK_DIV_BUSY_CYCLES                         0x00

EVENT_DIV_OP_COUNT                            0xD4 PMC
UMASK_DIV_OP_COUNT                            0x00

EVENT_CYCLES_NO_RETIRE                                0xD6 PMC
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_QUEUE_EMPTY           0x01
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_NOT_COMPLETE          0x02
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_OTHER                 0x08
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_THREAD_NOT_SELECTED   0x10
UMASK_CYCLES_NO_RETIRE_LOAD_MISS_NOT_COMPLETE         0x52

EVENT_RETIRED_MICROCODED_INSTR                  0x1C1 PMC
UMASK_RETIRED_MICROCODED_INSTR                  0x00

EVENT_RETIRED_MICROCODE_OPS                     0x1C2 PMC
UMASK_RETIRED_MICROCODE_OPS                     0x00

EVENT_RETIRED_BRANCHES_MISP_DIRECTION_MISMATCH  0x1C7     PMC
UMASK_RETIRED_BRANCHES_MISP_DIRECTION_MISMATCH  0x00

EVENT_RETIRED_UNCOND_INDIRECT_BRANCHES_MISP     0x1C8 PMC
UMASK_RETIRED_UNCOND_INDIRECT_BRANCHES_MISP     0x00

EVENT_RETIRED_UNCOND_BRANCHE_INSTR     0x1C9 PMC
UMASK_RETIRED_UNCOND_BRANCHE_INSTR     0x00

EVENT_TAGGED_IBS_OPS                          0x1CF PMC
UMASK_TAGGED_IBS_OPS_COUNT                    0x01
UMASK_TAGGED_IBS_OPS_COUNT_RETIRED            0x02
UMASK_TAGGED_IBS_OPS_COUNT_ROLLOVER           0x04

EVENT_RETIRED_FUSED_INSTR                       0x1D0 PMC
UMASK_RETIRED_FUSED_INSTR                       0x00

# L2 Cache Events

EVENT_REQUESTS_TO_L2_GRP1                     0x60 PMC
UMASK_REQUESTS_TO_L2_GRP1_GRP2                0x01
UMASK_REQUESTS_TO_L2_GRP1_L2_HW_PREF          0x02
UMASK_REQUESTS_TO_L2_GRP1_PREF_L2             0x04
UMASK_REQUESTS_TO_L2_GRP1_CHANGE_TO_X         0x08
UMASK_REQUESTS_TO_L2_GRP1_CACHEABLE_IC_READ   0x10
UMASK_REQUESTS_TO_L2_GRP1_LS_RD_BLOCK_C_S     0x20
UMASK_REQUESTS_TO_L2_GRP1_RD_BLOCK_X          0x40
UMASK_REQUESTS_TO_L2_GRP1_RD_BLOCK_L          0x80
UMASK_REQUESTS_TO_L2_GRP1_DATA_CACHE_MISSES   0xE8 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_L1_CACHES_MISS      0x88 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_ALL_NO_PF           0xF9 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_ALL                 0xFF # Added by T. Gruber

EVENT_CORE_TO_L2_CACHE_REQUESTS                      0x64 PMC
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_MISS         0x01
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_HIT_S        0x02
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_HIT_X        0x04
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_C        0x08
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_X        0x10
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_L_HIT_S  0x20
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_L_HIT_X  0x40
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_CS       0x80
UMASK_CORE_TO_L2_CACHE_REQUESTS_MISSES               0x09 # Added by T. Gruber
UMASK_CORE_TO_L2_CACHE_REQUESTS_HITS                 0xF6 # Added by T. Gruber

EVENT_L2_PF_HIT_IN_L2                       0x70 PMC
UMASK_L2_PF_HIT_IN_L2_L2_STREAM             0x01
UMASK_L2_PF_HIT_IN_L2_L2_NEXT_LINE          0x02
UMASK_L2_PF_HIT_IN_L2_L2_UP_DOWN            0x04
UMASK_L2_PF_HIT_IN_L2_L2_BURST              0x08
UMASK_L2_PF_HIT_IN_L2_L2_STRIDE             0x10
UMASK_L2_PF_HIT_IN_L2_L1_STREAM             0x20
UMASK_L2_PF_HIT_IN_L2_L1_STRIDE             0x40
UMASK_L2_PF_HIT_IN_L2_L1_REGION             0x80
UMASK_L2_PF_HIT_IN_L2                       0xFF

EVENT_L2_PF_HIT_IN_L3                       0x71 PMC
UMASK_L2_PF_HIT_IN_L3_L2_STREAM             0x01
UMASK_L2_PF_HIT_IN_L3_L2_NEXT_LINE          0x02
UMASK_L2_PF_HIT_IN_L3_L2_UP_DOWN            0x04
UMASK_L2_PF_HIT_IN_L3_L2_BURST              0x08
UMASK_L2_PF_HIT_IN_L3_L2_STRIDE             0x10
UMASK_L2_PF_HIT_IN_L3_L1_STREAM             0x20
UMASK_L2_PF_HIT_IN_L3_L1_STRIDE             0x40
UMASK_L2_PF_HIT_IN_L3_L1_REGION             0x80
# Event derived from documented performance metrics
UMASK_L2_PF_HIT_IN_L3_MISS_L2               0x1F
UMASK_L2_PF_HIT_IN_L3                       0xFF

EVENT_L2_PF_MISS_IN_L3                      0x72 PMC
UMASK_L2_PF_MISS_IN_L3_L2_STREAM            0x01
UMASK_L2_PF_MISS_IN_L3_L2_NEXT_LINE         0x02
UMASK_L2_PF_MISS_IN_L3_L2_UP_DOWN           0x04
UMASK_L2_PF_MISS_IN_L3_L2_BURST             0x08
UMASK_L2_PF_MISS_IN_L3_L2_STRIDE            0x10
UMASK_L2_PF_MISS_IN_L3_L1_STREAM            0x20
UMASK_L2_PF_MISS_IN_L3_L1_STRIDE            0x40
UMASK_L2_PF_MISS_IN_L3_L1_REGION            0x80
# Event derived from documented performance metrics
UMASK_L2_PF_MISS_IN_L3_MISS_L2              0x1F
UMASK_L2_PF_MISS_IN_L3                      0xFF

# Event derived from documented performance metrics
EVENT_L2_CACHE_MISS_AFTER_L1I_MISS          0x64 PMC
UMASK_L2_CACHE_MISS_AFTER_L1I_MISS          0x01

# Event derived from documented performance metrics
EVENT_L2_CACHE_HIT_AFTER_L1I_MISS          0x64 PMC
UMASK_L2_CACHE_HIT_AFTER_L1I_MISS          0x06

# Event derived from documented performance metrics
EVENT_L2_CACHE_MISS_AFTER_L1D_MISS          0x64 PMC
UMASK_L2_CACHE_MISS_AFTER_L1D_MISS          0x08

# Event derived from documented performance metrics
EVENT_L2_CACHE_HIT_AFTER_L1D_MISS          0x64 PMC
UMASK_L2_CACHE_HIT_AFTER_L1D_MISS          0xF0

# Event derived from documented performance metrics
EVENT_L2_CACHE_MISS_AFTER_L1_MISS         0x64 PMC
UMASK_L2_CACHE_MISS_AFTER_L1_MISS         0x09



# L3 Cache Events


EVENT_L3_LOOKUP_STATE                       0x04 CPMC
UMASK_L3_LOOKUP_STATE_MISS                  0x01
UMASK_L3_LOOKUP_STATE_HIT                   0xFE
UMASK_L3_LOOKUP_STATE_ALL_TYPES             0xFF

EVENT_L3_XI_SAMPLED_LATENCY                             0xAC CPMC
UMASK_L3_XI_SAMPLED_LATENCY_DRAM_NEAR                   0x01
UMASK_L3_XI_SAMPLED_LATENCY_DRAM_FAR                    0x02
UMASK_L3_XI_SAMPLED_LATENCY_NEAR_CACHE_FAR_CACHE_NEAR   0x04
UMASK_L3_XI_SAMPLED_LATENCY_NEAR_CACHE_FAR_CACHE_FAR    0x08
UMASK_L3_XI_SAMPLED_LATENCY_EXT_NEAR                    0x10
UMASK_L3_XI_SAMPLED_LATENCY_EXT_FAR                     0x20

EVENT_L3_XI_SAMPLED_LATENCY_REQUESTS                             0xAD CPMC
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS                   EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_NEAR                   0x01
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_FAR                    0x02
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_NEAR   0x04
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_FAR    0x08
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_NEAR                    0x10
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_FAR                     0x20


# Energy Events

EVENT_RAPL_CORE_ENERGY                    0x01 PWR0
UMASK_RAPL_CORE_ENERGY                    0x00

EVENT_RAPL_L3_ENERGY                     0x02 PWR2
UMASK_RAPL_L3_ENERGY                     0x00


# Data fabric events

EVENT_DF_EVENT_REMOTE_1    0x7C7 DFC
UMASK_DF_EVENT_REMOTE_1    0x02

EVENT_DF_EVENT_REMOTE_2    0x807 DFC
UMASK_DF_EVENT_REMOTE_2    0x02

EVENT_DF_EVENT_REMOTE_3    0x847 DFC
UMASK_DF_EVENT_REMOTE_3    0x02

EVENT_DF_EVENT_REMOTE_4    0x887 DFC
UMASK_DF_EVENT_REMOTE_5    0x02

EVENT_DRAM_CHANNEL_0            0x07 DFC
UMASK_DRAM_CHANNEL_0            0x38

EVENT_DRAM_CHANNEL_1            0x47 DFC
UMASK_DRAM_CHANNEL_1            0x38

EVENT_DRAM_CHANNEL_2            0x87 DFC
UMASK_DRAM_CHANNEL_2            0x38

EVENT_DRAM_CHANNEL_3            0xC7 DFC
UMASK_DRAM_CHANNEL_3            0x38

EVENT_DRAM_CHANNEL_4            0x107 DFC
UMASK_DRAM_CHANNEL_4            0x38

EVENT_DRAM_CHANNEL_5            0x147 DFC
UMASK_DRAM_CHANNEL_5            0x38

EVENT_DRAM_CHANNEL_6            0x187 DFC
UMASK_DRAM_CHANNEL_6            0x38

EVENT_DRAM_CHANNEL_7            0x1C7 DFC
UMASK_DRAM_CHANNEL_7            0x38
