127b565b1SAndi Kleen[ 227b565b1SAndi Kleen { 3*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational 128-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 2 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element.", 4*8aae803fSIan Rogers "EventCode": "0xc7", 5fae0a4dfSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE", 6*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational 128-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 2 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 7fae0a4dfSAndi Kleen "SampleAfterValue": "2000003", 834cb72efSIan Rogers "UMask": "0x4" 9fae0a4dfSAndi Kleen }, 10fae0a4dfSAndi Kleen { 11*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational 128-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 4 calculations per element.", 12*8aae803fSIan Rogers "EventCode": "0xc7", 13fae0a4dfSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE", 14*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational 128-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 15fae0a4dfSAndi Kleen "SampleAfterValue": "2000003", 1634cb72efSIan Rogers "UMask": "0x8" 17fae0a4dfSAndi Kleen }, 18fae0a4dfSAndi Kleen { 19*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational 256-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform 4 calculations per element.", 20*8aae803fSIan Rogers "EventCode": "0xc7", 21fae0a4dfSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE", 22*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational 256-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 23fae0a4dfSAndi Kleen "SampleAfterValue": "2000003", 2434cb72efSIan Rogers "UMask": "0x10" 25fae0a4dfSAndi Kleen }, 26fae0a4dfSAndi Kleen { 27*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational 256-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 8 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 8 calculations per element.", 2834cb72efSIan Rogers "EventCode": "0xc7", 29fae0a4dfSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE", 30*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational 256-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 8 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 31fae0a4dfSAndi Kleen "SampleAfterValue": "2000003", 3234cb72efSIan Rogers "UMask": "0x20" 3327b565b1SAndi Kleen }, 3427b565b1SAndi Kleen { 35*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational 128-bit packed single and 256-bit packed double precision FP instructions retired; some instructions will count twice as noted below. Each count represents 2 or/and 4 computation operations, 1 for each element. Applies to SSE* and AVX* packed single precision and packed double precision FP instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB count twice as they perform 2 calculations per element.", 36*8aae803fSIan Rogers "EventCode": "0xc7", 3734cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.4_FLOPS", 3834cb72efSIan Rogers "PublicDescription": "Number of SSE/AVX computational 128-bit packed single precision and 256-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 2 or/and 4 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point and packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 3934cb72efSIan Rogers "SampleAfterValue": "2000003", 4027b565b1SAndi Kleen "UMask": "0x18" 4127b565b1SAndi Kleen }, 42*8aae803fSIan Rogers { 43*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational double precision floating-point instructions retired; some instructions will count twice as noted below. Applies to SSE* and AVX* scalar and packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 44fae0a4dfSAndi Kleen "EventCode": "0xc7", 45fae0a4dfSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.DOUBLE", 4634cb72efSIan Rogers "SampleAfterValue": "2000006", 47fae0a4dfSAndi Kleen "UMask": "0x15" 48fae0a4dfSAndi Kleen }, 49*8aae803fSIan Rogers { 50*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational packed floating-point instructions retired; some instructions will count twice as noted below. Applies to SSE* and AVX* packed double and single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 5134cb72efSIan Rogers "EventCode": "0xc7", 52*8aae803fSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.PACKED", 5334cb72efSIan Rogers "SampleAfterValue": "2000004", 5434cb72efSIan Rogers "UMask": "0x3c" 55fae0a4dfSAndi Kleen }, 56fae0a4dfSAndi Kleen { 57*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational scalar floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computation operation. Applies to SSE* and AVX* scalar double and single precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT RCP FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 58*8aae803fSIan Rogers "EventCode": "0xc7", 5934cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR", 60*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational scalar single precision and double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computational operation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT RCP FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 6134cb72efSIan Rogers "SampleAfterValue": "2000003", 6234cb72efSIan Rogers "UMask": "0x3" 63fae0a4dfSAndi Kleen }, 64fae0a4dfSAndi Kleen { 65*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational scalar double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computational operation. Applies to SSE* and AVX* scalar double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 66*8aae803fSIan Rogers "EventCode": "0xc7", 6734cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR_DOUBLE", 68*8aae803fSIan Rogers "PublicDescription": "Number of SSE/AVX computational scalar double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computational operation. Applies to SSE* and AVX* scalar double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 6934cb72efSIan Rogers "SampleAfterValue": "2000003", 7034cb72efSIan Rogers "UMask": "0x1" 71fae0a4dfSAndi Kleen }, 72fae0a4dfSAndi Kleen { 73*8aae803fSIan Rogers "BriefDescription": "Number of SSE/AVX computational scalar single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computational operation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT RCP FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 74*8aae803fSIan Rogers "EventCode": "0xc7", 7534cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE", 7634cb72efSIan Rogers "PublicDescription": "Number of SSE/AVX computational scalar single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computational operation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT RCP FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element. The DAZ and FTZ flags in the MXCSR register need to be set when using these events.", 7734cb72efSIan Rogers "SampleAfterValue": "2000003", 7834cb72efSIan Rogers "UMask": "0x2" 7934cb72efSIan Rogers }, 8034cb72efSIan Rogers { 8134cb72efSIan Rogers "BriefDescription": "Number of SSE/AVX computational single precision floating-point instructions retired; some instructions will count twice as noted below. Applies to SSE* and AVX* scalar and packed single precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RCP SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", 82fae0a4dfSAndi Kleen "EventCode": "0xc7", 8334cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SINGLE", 8434cb72efSIan Rogers "SampleAfterValue": "2000005", 8534cb72efSIan Rogers "UMask": "0x2a" 8634cb72efSIan Rogers }, 8734cb72efSIan Rogers { 8834cb72efSIan Rogers "BriefDescription": "Number of any Vector retired FP arithmetic instructions", 89fae0a4dfSAndi Kleen "EventCode": "0xc7", 9034cb72efSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.VECTOR", 91fae0a4dfSAndi Kleen "SampleAfterValue": "2000003", 92fae0a4dfSAndi Kleen "UMask": "0xfc" 93fae0a4dfSAndi Kleen }, 9434cb72efSIan Rogers { 95fae0a4dfSAndi Kleen "BriefDescription": "Cycles with any input/output SSE or FP assist", 96fae0a4dfSAndi Kleen "CounterMask": "1", 9734cb72efSIan Rogers "EventCode": "0xCA", 9834cb72efSIan Rogers "EventName": "FP_ASSIST.ANY", 9934cb72efSIan Rogers "PublicDescription": "This event counts cycles with any input and output SSE or x87 FP assist. If an input and output assist are detected on the same cycle the event increments by 1.", 10034cb72efSIan Rogers "SampleAfterValue": "100003", 101fae0a4dfSAndi Kleen "UMask": "0x1e" 10234cb72efSIan Rogers }, 10334cb72efSIan Rogers { 10434cb72efSIan Rogers "BriefDescription": "Number of SIMD FP assists due to input values", 10534cb72efSIan Rogers "EventCode": "0xCA", 10634cb72efSIan Rogers "EventName": "FP_ASSIST.SIMD_INPUT", 10734cb72efSIan Rogers "PublicDescription": "This event counts any input SSE* FP assist - invalid operation, denormal operand, dividing by zero, SNaN operand. Counting includes only cases involving penalties that required micro-code assist intervention.", 10834cb72efSIan Rogers "SampleAfterValue": "100003", 10934cb72efSIan Rogers "UMask": "0x10" 11034cb72efSIan Rogers }, 11134cb72efSIan Rogers { 11234cb72efSIan Rogers "BriefDescription": "Number of SIMD FP assists due to Output values", 11334cb72efSIan Rogers "EventCode": "0xCA", 11434cb72efSIan Rogers "EventName": "FP_ASSIST.SIMD_OUTPUT", 11534cb72efSIan Rogers "PublicDescription": "This event counts the number of SSE* floating point (FP) micro-code assist (numeric overflow/underflow) when the output value (destination register) is invalid. Counting covers only cases involving penalties that require micro-code assist intervention.", 11634cb72efSIan Rogers "SampleAfterValue": "100003", 11734cb72efSIan Rogers "UMask": "0x8" 11834cb72efSIan Rogers }, 11934cb72efSIan Rogers { 12034cb72efSIan Rogers "BriefDescription": "Number of X87 assists due to input value.", 12134cb72efSIan Rogers "EventCode": "0xCA", 12234cb72efSIan Rogers "EventName": "FP_ASSIST.X87_INPUT", 12334cb72efSIan Rogers "PublicDescription": "This event counts x87 floating point (FP) micro-code assist (invalid operation, denormal operand, SNaN operand) when the input value (one of the source operands to an FP instruction) is invalid.", 12434cb72efSIan Rogers "SampleAfterValue": "100003", 12534cb72efSIan Rogers "UMask": "0x4" 12634cb72efSIan Rogers }, 12734cb72efSIan Rogers { 12834cb72efSIan Rogers "BriefDescription": "Number of X87 assists due to output value.", 12934cb72efSIan Rogers "EventCode": "0xCA", 13034cb72efSIan Rogers "EventName": "FP_ASSIST.X87_OUTPUT", 13134cb72efSIan Rogers "PublicDescription": "This event counts the number of x87 floating point (FP) micro-code assist (numeric overflow/underflow, inexact result) when the output value (destination register) is invalid.", 13234cb72efSIan Rogers "SampleAfterValue": "100003", 13334cb72efSIan Rogers "UMask": "0x2" 13434cb72efSIan Rogers }, 13534cb72efSIan Rogers { 13634cb72efSIan Rogers "BriefDescription": "Number of SIMD Move Elimination candidate uops that were eliminated.", 13734cb72efSIan Rogers "EventCode": "0x58", 13834cb72efSIan Rogers "EventName": "MOVE_ELIMINATION.SIMD_ELIMINATED", 13934cb72efSIan Rogers "SampleAfterValue": "1000003", 14034cb72efSIan Rogers "UMask": "0x2" 14134cb72efSIan Rogers }, 14234cb72efSIan Rogers { 14334cb72efSIan Rogers "BriefDescription": "Number of SIMD Move Elimination candidate uops that were not eliminated.", 14434cb72efSIan Rogers "EventCode": "0x58", 14534cb72efSIan Rogers "EventName": "MOVE_ELIMINATION.SIMD_NOT_ELIMINATED", 14634cb72efSIan Rogers "SampleAfterValue": "1000003", 14734cb72efSIan Rogers "UMask": "0x8" 14834cb72efSIan Rogers }, 14934cb72efSIan Rogers { 15034cb72efSIan Rogers "BriefDescription": "Number of transitions from AVX-256 to legacy SSE when penalty applicable.", 15134cb72efSIan Rogers "Errata": "BDM30", 15234cb72efSIan Rogers "EventCode": "0xC1", 15334cb72efSIan Rogers "EventName": "OTHER_ASSISTS.AVX_TO_SSE", 15434cb72efSIan Rogers "PublicDescription": "This event counts the number of transitions from AVX-256 to legacy SSE when penalty is applicable.", 15534cb72efSIan Rogers "SampleAfterValue": "100003", 15634cb72efSIan Rogers "UMask": "0x8" 15734cb72efSIan Rogers }, 15834cb72efSIan Rogers { 15927b565b1SAndi Kleen "BriefDescription": "Number of transitions from SSE to AVX-256 when penalty applicable.", 16027b565b1SAndi Kleen "Errata": "BDM30", 161 "EventCode": "0xC1", 162 "EventName": "OTHER_ASSISTS.SSE_TO_AVX", 163 "PublicDescription": "This event counts the number of transitions from legacy SSE to AVX-256 when penalty is applicable.", 164 "SampleAfterValue": "100003", 165 "UMask": "0x10" 166 }, 167 { 168 "BriefDescription": "Micro-op dispatches cancelled due to insufficient SIMD physical register file read ports", 169 "EventCode": "0xA0", 170 "EventName": "UOP_DISPATCHES_CANCELLED.SIMD_PRF", 171 "PublicDescription": "This event counts the number of micro-operations cancelled after they were dispatched from the scheduler to the execution units when the total number of physical register read ports across all dispatch ports exceeds the read bandwidth of the physical register file. The SIMD_PRF subevent applies to the following instructions: VDPPS, DPPS, VPCMPESTRI, PCMPESTRI, VPCMPESTRM, PCMPESTRM, VFMADD*, VFMADDSUB*, VFMSUB*, VMSUBADD*, VFNMADD*, VFNMSUB*. See the Broadwell Optimization Guide for more information.", 172 "SampleAfterValue": "2000003", 173 "UMask": "0x3" 174 } 175] 176