1f9900dd0SZhengjun Xing[
2f9900dd0SZhengjun Xing    {
35fa2481cSZhengjun Xing        "BriefDescription": "ARITH.FPDIV_ACTIVE",
4f9900dd0SZhengjun Xing        "CounterMask": "1",
5f9900dd0SZhengjun Xing        "EventCode": "0xb0",
6f9900dd0SZhengjun Xing        "EventName": "ARITH.FPDIV_ACTIVE",
7f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
8f9900dd0SZhengjun Xing        "UMask": "0x1",
9f9900dd0SZhengjun Xing        "Unit": "cpu_core"
10f9900dd0SZhengjun Xing    },
11f9900dd0SZhengjun Xing    {
12f9900dd0SZhengjun Xing        "BriefDescription": "Counts all microcode FP assists.",
13f9900dd0SZhengjun Xing        "EventCode": "0xc1",
14f9900dd0SZhengjun Xing        "EventName": "ASSISTS.FP",
154c12f41aSZhengjun Xing        "PublicDescription": "Counts all microcode Floating Point assists.",
16f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
17f9900dd0SZhengjun Xing        "UMask": "0x2",
18f9900dd0SZhengjun Xing        "Unit": "cpu_core"
19f9900dd0SZhengjun Xing    },
20f9900dd0SZhengjun Xing    {
215fa2481cSZhengjun Xing        "BriefDescription": "ASSISTS.SSE_AVX_MIX",
22f9900dd0SZhengjun Xing        "EventCode": "0xc1",
23f9900dd0SZhengjun Xing        "EventName": "ASSISTS.SSE_AVX_MIX",
24f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
25f9900dd0SZhengjun Xing        "UMask": "0x10",
26f9900dd0SZhengjun Xing        "Unit": "cpu_core"
27f9900dd0SZhengjun Xing    },
28f9900dd0SZhengjun Xing    {
295fa2481cSZhengjun Xing        "BriefDescription": "FP_ARITH_DISPATCHED.PORT_0",
30f9900dd0SZhengjun Xing        "EventCode": "0xb3",
31f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_DISPATCHED.PORT_0",
32f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
33f9900dd0SZhengjun Xing        "UMask": "0x1",
34f9900dd0SZhengjun Xing        "Unit": "cpu_core"
35f9900dd0SZhengjun Xing    },
36f9900dd0SZhengjun Xing    {
375fa2481cSZhengjun Xing        "BriefDescription": "FP_ARITH_DISPATCHED.PORT_1",
38f9900dd0SZhengjun Xing        "EventCode": "0xb3",
39f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_DISPATCHED.PORT_1",
40f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
41f9900dd0SZhengjun Xing        "UMask": "0x2",
42f9900dd0SZhengjun Xing        "Unit": "cpu_core"
43f9900dd0SZhengjun Xing    },
44f9900dd0SZhengjun Xing    {
455fa2481cSZhengjun Xing        "BriefDescription": "FP_ARITH_DISPATCHED.PORT_5",
46f9900dd0SZhengjun Xing        "EventCode": "0xb3",
47f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_DISPATCHED.PORT_5",
48f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
49f9900dd0SZhengjun Xing        "UMask": "0x4",
50f9900dd0SZhengjun Xing        "Unit": "cpu_core"
51f9900dd0SZhengjun Xing    },
52f9900dd0SZhengjun Xing    {
53f9900dd0SZhengjun Xing        "BriefDescription": "Counts 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.",
54f9900dd0SZhengjun Xing        "EventCode": "0xc7",
55f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE",
564c12f41aSZhengjun 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.",
57f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
58f9900dd0SZhengjun Xing        "UMask": "0x4",
59f9900dd0SZhengjun Xing        "Unit": "cpu_core"
60f9900dd0SZhengjun Xing    },
61f9900dd0SZhengjun Xing    {
62f9900dd0SZhengjun Xing        "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 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.",
63f9900dd0SZhengjun Xing        "EventCode": "0xc7",
64f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE",
654c12f41aSZhengjun 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.",
66f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
67f9900dd0SZhengjun Xing        "UMask": "0x8",
68f9900dd0SZhengjun Xing        "Unit": "cpu_core"
69f9900dd0SZhengjun Xing    },
70f9900dd0SZhengjun Xing    {
71f9900dd0SZhengjun Xing        "BriefDescription": "Counts 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.",
72f9900dd0SZhengjun Xing        "EventCode": "0xc7",
73f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE",
744c12f41aSZhengjun 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.",
75f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
76f9900dd0SZhengjun Xing        "UMask": "0x10",
77f9900dd0SZhengjun Xing        "Unit": "cpu_core"
78f9900dd0SZhengjun Xing    },
79f9900dd0SZhengjun Xing    {
80f9900dd0SZhengjun Xing        "BriefDescription": "Counts 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.",
81f9900dd0SZhengjun Xing        "EventCode": "0xc7",
82f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE",
834c12f41aSZhengjun 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.",
84f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
85f9900dd0SZhengjun Xing        "UMask": "0x20",
86f9900dd0SZhengjun Xing        "Unit": "cpu_core"
87f9900dd0SZhengjun Xing    },
88f9900dd0SZhengjun Xing    {
89*ad10c920SIan 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.",
90*ad10c920SIan Rogers        "EventCode": "0xc7",
91*ad10c920SIan Rogers        "EventName": "FP_ARITH_INST_RETIRED.4_FLOPS",
92*ad10c920SIan 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.",
93*ad10c920SIan Rogers        "SampleAfterValue": "100003",
94*ad10c920SIan Rogers        "UMask": "0x18",
95*ad10c920SIan Rogers        "Unit": "cpu_core"
96*ad10c920SIan Rogers    },
97*ad10c920SIan Rogers    {
98*ad10c920SIan Rogers        "BriefDescription": "Number of SSE/AVX computational scalar floating-point instructions retired; some instructions will count twice as noted below.  Applies to SSE* and AVX* scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 RANGE SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
99*ad10c920SIan Rogers        "EventCode": "0xc7",
100*ad10c920SIan Rogers        "EventName": "FP_ARITH_INST_RETIRED.SCALAR",
101*ad10c920SIan 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.",
102*ad10c920SIan Rogers        "SampleAfterValue": "1000003",
103*ad10c920SIan Rogers        "UMask": "0x3",
104*ad10c920SIan Rogers        "Unit": "cpu_core"
105*ad10c920SIan Rogers    },
106*ad10c920SIan Rogers    {
107f9900dd0SZhengjun Xing        "BriefDescription": "Counts 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.",
108f9900dd0SZhengjun Xing        "EventCode": "0xc7",
109f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.SCALAR_DOUBLE",
1104c12f41aSZhengjun 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.",
111f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
112f9900dd0SZhengjun Xing        "UMask": "0x1",
113f9900dd0SZhengjun Xing        "Unit": "cpu_core"
114f9900dd0SZhengjun Xing    },
115f9900dd0SZhengjun Xing    {
116f9900dd0SZhengjun Xing        "BriefDescription": "Counts 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.",
117f9900dd0SZhengjun Xing        "EventCode": "0xc7",
118f9900dd0SZhengjun Xing        "EventName": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE",
1194c12f41aSZhengjun 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.",
120f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
121f9900dd0SZhengjun Xing        "UMask": "0x2",
122f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1234c12f41aSZhengjun Xing    },
1244c12f41aSZhengjun Xing    {
125*ad10c920SIan Rogers        "BriefDescription": "Number of any Vector retired FP arithmetic instructions",
126*ad10c920SIan Rogers        "EventCode": "0xc7",
127*ad10c920SIan Rogers        "EventName": "FP_ARITH_INST_RETIRED.VECTOR",
128*ad10c920SIan Rogers        "PublicDescription": "Number of any Vector retired FP arithmetic instructions.  The DAZ and FTZ flags in the MXCSR register need to be set when using these events.",
129*ad10c920SIan Rogers        "SampleAfterValue": "1000003",
130*ad10c920SIan Rogers        "UMask": "0xfc",
131*ad10c920SIan Rogers        "Unit": "cpu_core"
132*ad10c920SIan Rogers    },
133*ad10c920SIan Rogers    {
1344c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of floating point operations retired that required microcode assist.",
1354c12f41aSZhengjun Xing        "EventCode": "0xc3",
1364c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.FP_ASSIST",
1374c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of floating point operations retired that required microcode assist, which is not a reflection of the number of FP operations, instructions or uops.",
1384c12f41aSZhengjun Xing        "SampleAfterValue": "20003",
1394c12f41aSZhengjun Xing        "UMask": "0x4",
1404c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1414c12f41aSZhengjun Xing    },
1424c12f41aSZhengjun Xing    {
1434c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of floating point divide uops retired (x87 and SSE, including x87 sqrt).",
1444c12f41aSZhengjun Xing        "EventCode": "0xc2",
1454c12f41aSZhengjun Xing        "EventName": "UOPS_RETIRED.FPDIV",
1464c12f41aSZhengjun Xing        "PEBS": "1",
1474c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
1484c12f41aSZhengjun Xing        "UMask": "0x8",
1494c12f41aSZhengjun Xing        "Unit": "cpu_atom"
150f9900dd0SZhengjun Xing    }
151f9900dd0SZhengjun Xing]
152