aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf/pmu-events/arch/x86/amdzen1/floating-point.json
blob: a35542bd3b36eba46ec63740aedbfbf9597bd313 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
[
  {
    "EventName": "fpu_pipe_assignment.dual",
    "EventCode": "0x00",
    "BriefDescription": "Total number multi-pipe uOps assigned to all pipes.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number multi-pipe uOps assigned to all pipes.",
    "UMask": "0xf0"
  },
  {
    "EventName": "fpu_pipe_assignment.dual3",
    "EventCode": "0x00",
    "BriefDescription": "Total number multi-pipe uOps assigned to pipe 3.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number multi-pipe uOps assigned to pipe 3.",
    "UMask": "0x80"
  },
  {
    "EventName": "fpu_pipe_assignment.dual2",
    "EventCode": "0x00",
    "BriefDescription": "Total number multi-pipe uOps assigned to pipe 2.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number multi-pipe uOps assigned to pipe 2.",
    "UMask": "0x40"
  },
  {
    "EventName": "fpu_pipe_assignment.dual1",
    "EventCode": "0x00",
    "BriefDescription": "Total number multi-pipe uOps assigned to pipe 1.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number multi-pipe uOps assigned to pipe 1.",
    "UMask": "0x20"
  },
  {
    "EventName": "fpu_pipe_assignment.dual0",
    "EventCode": "0x00",
    "BriefDescription": "Total number multi-pipe uOps assigned to pipe 0.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number multi-pipe uOps assigned to pipe 0.",
    "UMask": "0x10"
  },
  {
    "EventName": "fpu_pipe_assignment.total",
    "EventCode": "0x00",
    "BriefDescription": "Total number uOps assigned to all fpu pipes.",
    "PublicDescription": "The number of operations (uOps) and dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number uOps assigned to all pipes.",
    "UMask": "0xf"
  },
  {
    "EventName": "fpu_pipe_assignment.total3",
    "EventCode": "0x00",
    "BriefDescription": "Total number of fp uOps on pipe 3.",
    "PublicDescription": "The number of operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one-cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number uOps assigned to pipe 3.",
    "UMask": "0x8"
  },
  {
    "EventName": "fpu_pipe_assignment.total2",
    "EventCode": "0x00",
    "BriefDescription": "Total number of fp uOps on pipe 2.",
    "PublicDescription": "The number of operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number uOps assigned to pipe 2.",
    "UMask": "0x4"
  },
  {
    "EventName": "fpu_pipe_assignment.total1",
    "EventCode": "0x00",
    "BriefDescription": "Total number of fp uOps on pipe 1.",
    "PublicDescription": "The number of operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number uOps assigned to pipe 1.",
    "UMask": "0x2"
  },
  {
    "EventName": "fpu_pipe_assignment.total0",
    "EventCode": "0x00",
    "BriefDescription": "Total number of fp uOps  on pipe 0.",
    "PublicDescription": "The number of operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how busy the FPU pipelines are and may be used for workload characterization. This includes all operations performed by x87, MMX, and SSE instructions, including moves. Each increment represents a one- cycle dispatch event. This event is a speculative event. Since this event includes non-numeric operations it is not suitable for measuring MFLOPS. Total number uOps assigned to pipe 0.",
    "UMask": "0x1"
  },
  {
    "EventName": "fp_sched_empty",
    "EventCode": "0x01",
    "BriefDescription": "This is a speculative event. The number of cycles in which the FPU scheduler is empty. Note that some Ops like FP loads bypass the scheduler."
  },
  {
    "EventName": "fp_retx87_fp_ops.all",
    "EventCode": "0x02",
    "BriefDescription": "All Ops.",
    "PublicDescription": "The number of x87 floating-point Ops that have retired. The number of events logged per cycle can vary from 0 to 8.",
    "UMask": "0x7"
  },
  {
    "EventName": "fp_retx87_fp_ops.div_sqr_r_ops",
    "EventCode": "0x02",
    "BriefDescription": "Divide and square root Ops.",
    "PublicDescription": "The number of x87 floating-point Ops that have retired. The number of events logged per cycle can vary from 0 to 8. Divide and square root Ops.",
    "UMask": "0x4"
  },
  {
    "EventName": "fp_retx87_fp_ops.mul_ops",
    "EventCode": "0x02",
    "BriefDescription": "Multiply Ops.",
    "PublicDescription": "The number of x87 floating-point Ops that have retired. The number of events logged per cycle can vary from 0 to 8. Multiply Ops.",
    "UMask": "0x2"
  },
  {
    "EventName": "fp_retx87_fp_ops.add_sub_ops",
    "EventCode": "0x02",
    "BriefDescription": "Add/subtract Ops.",
    "PublicDescription": "The number of x87 floating-point Ops that have retired. The number of events logged per cycle can vary from 0 to 8. Add/subtract Ops.",
    "UMask": "0x1"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.all",
    "EventCode": "0x03",
    "BriefDescription": "All FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15.",
    "UMask": "0xff"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.dp_mult_add_flops",
    "EventCode": "0x03",
    "BriefDescription": "Double precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Double precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS.",
    "UMask": "0x80"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.dp_div_flops",
    "EventCode": "0x03",
    "BriefDescription": "Double precision divide/square root FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Double precision divide/square root FLOPS.",
    "UMask": "0x40"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.dp_mult_flops",
    "EventCode": "0x03",
    "BriefDescription": "Double precision multiply FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Double precision multiply FLOPS.",
    "UMask": "0x20"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.dp_add_sub_flops",
    "EventCode": "0x03",
    "BriefDescription": "Double precision add/subtract FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Double precision add/subtract FLOPS.",
    "UMask": "0x10"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.sp_mult_add_flops",
    "EventCode": "0x03",
    "BriefDescription": "Single precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Single precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS.",
    "UMask": "0x8"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.sp_div_flops",
    "EventCode": "0x03",
    "BriefDescription": "Single-precision divide/square root FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Single-precision divide/square root FLOPS.",
    "UMask": "0x4"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.sp_mult_flops",
    "EventCode": "0x03",
    "BriefDescription": "Single-precision multiply FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Single-precision multiply FLOPS.",
    "UMask": "0x2"
  },
  {
    "EventName": "fp_ret_sse_avx_ops.sp_add_sub_flops",
    "EventCode": "0x03",
    "BriefDescription": "Single-precision add/subtract FLOPS.",
    "PublicDescription": "This is a retire-based event. The number of retired SSE/AVX FLOPS. The number of events logged per cycle can vary from 0 to 64. This event can count above 15. Single-precision add/subtract FLOPS.",
    "UMask": "0x1"
  },
  {
    "EventName": "fp_num_mov_elim_scal_op.optimized",
    "EventCode": "0x04",
    "BriefDescription": "Number of Scalar Ops optimized.",
    "PublicDescription": "This is a dispatch based speculative event, and is useful for measuring the effectiveness of the Move elimination and Scalar code optimization schemes. Number of Scalar Ops optimized.",
    "UMask": "0x8"
  },
  {
    "EventName": "fp_num_mov_elim_scal_op.opt_potential",
    "EventCode": "0x04",
    "BriefDescription": "Number of Ops that are candidates for optimization (have Z-bit either set or pass).",
    "PublicDescription": "This is a dispatch based speculative event, and is useful for measuring the effectiveness of the Move elimination and Scalar code optimization schemes. Number of Ops that are candidates for optimization (have Z-bit either set or pass).",
    "UMask": "0x4"
  },
  {
    "EventName": "fp_num_mov_elim_scal_op.sse_mov_ops_elim",
    "EventCode": "0x04",
    "BriefDescription": "Number of SSE Move Ops eliminated.",
    "PublicDescription": "This is a dispatch based speculative event, and is useful for measuring the effectiveness of the Move elimination and Scalar code optimization schemes. Number of SSE Move Ops eliminated.",
    "UMask": "0x2"
  },
  {
    "EventName": "fp_num_mov_elim_scal_op.sse_mov_ops",
    "EventCode": "0x04",
    "BriefDescription": "Number of SSE Move Ops.",
    "PublicDescription": "This is a dispatch based speculative event, and is useful for measuring the effectiveness of the Move elimination and Scalar code optimization schemes. Number of SSE Move Ops.",
    "UMask": "0x1"
  },
  {
    "EventName": "fp_retired_ser_ops.x87_ctrl_ret",
    "EventCode": "0x05",
    "BriefDescription": "x87 control word mispredict traps due to mispredictions in RC or PC, or changes in mask bits.",
    "PublicDescription": "The number of serializing Ops retired. x87 control word mispredict traps due to mispredictions in RC or PC, or changes in mask bits.",
    "UMask": "0x8"
  },
  {
    "EventName": "fp_retired_ser_ops.x87_bot_ret",
    "EventCode": "0x05",
    "BriefDescription": "x87 bottom-executing uOps retired.",
    "PublicDescription": "The number of serializing Ops retired. x87 bottom-executing uOps retired.",
    "UMask": "0x4"
  },
  {
    "EventName": "fp_retired_ser_ops.sse_ctrl_ret",
    "EventCode": "0x05",
    "BriefDescription": "SSE control word mispredict traps due to mispredictions in RC, FTZ or DAZ, or changes in mask bits.",
    "PublicDescription": "The number of serializing Ops retired. SSE control word mispredict traps due to mispredictions in RC, FTZ or DAZ, or changes in mask bits.",
    "UMask": "0x2"
  },
  {
    "EventName": "fp_retired_ser_ops.sse_bot_ret",
    "EventCode": "0x05",
    "BriefDescription": "SSE bottom-executing uOps retired.",
    "PublicDescription": "The number of serializing Ops retired. SSE bottom-executing uOps retired.",
    "UMask": "0x1"
  }
]