119c0389bSAndi Kleen[ 219c0389bSAndi Kleen { 356f57cffSIan 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.", 456f57cffSIan Rogers "EventCode": "0xc7", 597d00f2dSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE", 628738de9SZhengjun Xing "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.", 797d00f2dSAndi Kleen "SampleAfterValue": "2000003", 856f57cffSIan Rogers "UMask": "0x4" 997d00f2dSAndi Kleen }, 1097d00f2dSAndi Kleen { 1156f57cffSIan 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.", 1256f57cffSIan Rogers "EventCode": "0xc7", 1397d00f2dSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE", 1428738de9SZhengjun Xing "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.", 1597d00f2dSAndi Kleen "SampleAfterValue": "2000003", 1656f57cffSIan Rogers "UMask": "0x8" 1797d00f2dSAndi Kleen }, 1897d00f2dSAndi Kleen { 1956f57cffSIan 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.", 2056f57cffSIan Rogers "EventCode": "0xc7", 2197d00f2dSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE", 2228738de9SZhengjun Xing "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.", 2397d00f2dSAndi Kleen "SampleAfterValue": "2000003", 2456f57cffSIan Rogers "UMask": "0x10" 2597d00f2dSAndi Kleen }, 2697d00f2dSAndi Kleen { 2756f57cffSIan 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.", 2897d00f2dSAndi Kleen "EventCode": "0xc7", 2997d00f2dSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE", 3028738de9SZhengjun Xing "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.", 3197d00f2dSAndi Kleen "SampleAfterValue": "2000003", 3256f57cffSIan Rogers "UMask": "0x20" 3319c0389bSAndi Kleen }, 3419c0389bSAndi Kleen { 35*7d124303SIan 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*7d124303SIan Rogers "EventCode": "0xc7", 37*7d124303SIan Rogers "EventName": "FP_ARITH_INST_RETIRED.4_FLOPS", 38*7d124303SIan 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.", 39*7d124303SIan Rogers "SampleAfterValue": "2000003", 40*7d124303SIan Rogers "UMask": "0x18" 41*7d124303SIan Rogers }, 42*7d124303SIan Rogers { 4356f57cffSIan 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.", 4456f57cffSIan Rogers "EventCode": "0xc7", 4556f57cffSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.DOUBLE", 4656f57cffSIan Rogers "SampleAfterValue": "2000006", 4756f57cffSIan Rogers "UMask": "0x15" 4819c0389bSAndi Kleen }, 4919c0389bSAndi Kleen { 5056f57cffSIan 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.", 5156f57cffSIan Rogers "EventCode": "0xc7", 5297d00f2dSAndi Kleen "EventName": "FP_ARITH_INST_RETIRED.PACKED", 5397d00f2dSAndi Kleen "SampleAfterValue": "2000004", 5456f57cffSIan Rogers "UMask": "0x3c" 5597d00f2dSAndi Kleen }, 5697d00f2dSAndi Kleen { 5756f57cffSIan 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.", 5856f57cffSIan Rogers "EventCode": "0xc7", 5956f57cffSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR", 6028738de9SZhengjun Xing "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.", 6156f57cffSIan Rogers "SampleAfterValue": "2000003", 6256f57cffSIan Rogers "UMask": "0x3" 6397d00f2dSAndi Kleen }, 6497d00f2dSAndi Kleen { 6556f57cffSIan 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.", 6656f57cffSIan Rogers "EventCode": "0xc7", 6756f57cffSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR_DOUBLE", 6828738de9SZhengjun Xing "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.", 6956f57cffSIan Rogers "SampleAfterValue": "2000003", 7056f57cffSIan Rogers "UMask": "0x1" 7197d00f2dSAndi Kleen }, 7297d00f2dSAndi Kleen { 7356f57cffSIan 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.", 7456f57cffSIan Rogers "EventCode": "0xc7", 7556f57cffSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE", 7628738de9SZhengjun Xing "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.", 7756f57cffSIan Rogers "SampleAfterValue": "2000003", 7856f57cffSIan Rogers "UMask": "0x2" 7997d00f2dSAndi Kleen }, 8097d00f2dSAndi Kleen { 8156f57cffSIan 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.", 8256f57cffSIan Rogers "EventCode": "0xc7", 8356f57cffSIan Rogers "EventName": "FP_ARITH_INST_RETIRED.SINGLE", 8456f57cffSIan Rogers "SampleAfterValue": "2000005", 8556f57cffSIan Rogers "UMask": "0x2a" 8656f57cffSIan Rogers }, 8756f57cffSIan Rogers { 88*7d124303SIan Rogers "BriefDescription": "Number of any Vector retired FP arithmetic instructions", 89*7d124303SIan Rogers "EventCode": "0xc7", 90*7d124303SIan Rogers "EventName": "FP_ARITH_INST_RETIRED.VECTOR", 91*7d124303SIan Rogers "SampleAfterValue": "2000003", 92*7d124303SIan Rogers "UMask": "0xfc" 93*7d124303SIan Rogers }, 94*7d124303SIan Rogers { 9556f57cffSIan Rogers "BriefDescription": "Cycles with any input/output SSE or FP assist", 9656f57cffSIan Rogers "CounterMask": "1", 9797d00f2dSAndi Kleen "EventCode": "0xCA", 9856f57cffSIan Rogers "EventName": "FP_ASSIST.ANY", 9956f57cffSIan 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.", 10056f57cffSIan Rogers "SampleAfterValue": "100003", 10156f57cffSIan Rogers "UMask": "0x1e" 10256f57cffSIan Rogers }, 10356f57cffSIan Rogers { 10497d00f2dSAndi Kleen "BriefDescription": "Number of SIMD FP assists due to input values", 10556f57cffSIan Rogers "EventCode": "0xCA", 10697d00f2dSAndi Kleen "EventName": "FP_ASSIST.SIMD_INPUT", 10797d00f2dSAndi Kleen "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.", 10897d00f2dSAndi Kleen "SampleAfterValue": "100003", 10956f57cffSIan Rogers "UMask": "0x10" 11097d00f2dSAndi Kleen }, 11197d00f2dSAndi Kleen { 11256f57cffSIan Rogers "BriefDescription": "Number of SIMD FP assists due to Output values", 11356f57cffSIan Rogers "EventCode": "0xCA", 11456f57cffSIan Rogers "EventName": "FP_ASSIST.SIMD_OUTPUT", 11556f57cffSIan 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.", 11697d00f2dSAndi Kleen "SampleAfterValue": "100003", 11756f57cffSIan Rogers "UMask": "0x8" 11856f57cffSIan Rogers }, 11956f57cffSIan Rogers { 12056f57cffSIan Rogers "BriefDescription": "Number of X87 assists due to input value.", 12156f57cffSIan Rogers "EventCode": "0xCA", 12256f57cffSIan Rogers "EventName": "FP_ASSIST.X87_INPUT", 12356f57cffSIan 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.", 12456f57cffSIan Rogers "SampleAfterValue": "100003", 12556f57cffSIan Rogers "UMask": "0x4" 12656f57cffSIan Rogers }, 12756f57cffSIan Rogers { 12856f57cffSIan Rogers "BriefDescription": "Number of X87 assists due to output value.", 12956f57cffSIan Rogers "EventCode": "0xCA", 13056f57cffSIan Rogers "EventName": "FP_ASSIST.X87_OUTPUT", 13156f57cffSIan 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.", 13256f57cffSIan Rogers "SampleAfterValue": "100003", 13356f57cffSIan Rogers "UMask": "0x2" 13456f57cffSIan Rogers }, 13556f57cffSIan Rogers { 13656f57cffSIan Rogers "BriefDescription": "Number of SIMD Move Elimination candidate uops that were eliminated.", 13756f57cffSIan Rogers "EventCode": "0x58", 13856f57cffSIan Rogers "EventName": "MOVE_ELIMINATION.SIMD_ELIMINATED", 13956f57cffSIan Rogers "SampleAfterValue": "1000003", 14056f57cffSIan Rogers "UMask": "0x2" 14156f57cffSIan Rogers }, 14256f57cffSIan Rogers { 14356f57cffSIan Rogers "BriefDescription": "Number of SIMD Move Elimination candidate uops that were not eliminated.", 14456f57cffSIan Rogers "EventCode": "0x58", 14556f57cffSIan Rogers "EventName": "MOVE_ELIMINATION.SIMD_NOT_ELIMINATED", 14656f57cffSIan Rogers "SampleAfterValue": "1000003", 14756f57cffSIan Rogers "UMask": "0x8" 14856f57cffSIan Rogers }, 14956f57cffSIan Rogers { 15056f57cffSIan Rogers "BriefDescription": "Number of transitions from AVX-256 to legacy SSE when penalty applicable.", 15156f57cffSIan Rogers "Errata": "BDM30", 15256f57cffSIan Rogers "EventCode": "0xC1", 15356f57cffSIan Rogers "EventName": "OTHER_ASSISTS.AVX_TO_SSE", 15456f57cffSIan Rogers "PublicDescription": "This event counts the number of transitions from AVX-256 to legacy SSE when penalty is applicable.", 15556f57cffSIan Rogers "SampleAfterValue": "100003", 15656f57cffSIan Rogers "UMask": "0x8" 15756f57cffSIan Rogers }, 15856f57cffSIan Rogers { 15956f57cffSIan Rogers "BriefDescription": "Number of transitions from SSE to AVX-256 when penalty applicable.", 16056f57cffSIan Rogers "Errata": "BDM30", 16156f57cffSIan Rogers "EventCode": "0xC1", 16256f57cffSIan Rogers "EventName": "OTHER_ASSISTS.SSE_TO_AVX", 16356f57cffSIan Rogers "PublicDescription": "This event counts the number of transitions from legacy SSE to AVX-256 when penalty is applicable.", 16456f57cffSIan Rogers "SampleAfterValue": "100003", 16556f57cffSIan Rogers "UMask": "0x10" 16656f57cffSIan Rogers }, 16756f57cffSIan Rogers { 16856f57cffSIan Rogers "BriefDescription": "Micro-op dispatches cancelled due to insufficient SIMD physical register file read ports", 16956f57cffSIan Rogers "EventCode": "0xA0", 17056f57cffSIan Rogers "EventName": "UOP_DISPATCHES_CANCELLED.SIMD_PRF", 17156f57cffSIan Rogers "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.", 17256f57cffSIan Rogers "SampleAfterValue": "2000003", 17356f57cffSIan Rogers "UMask": "0x3" 17419c0389bSAndi Kleen } 17519c0389bSAndi Kleen] 176