Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-exegesis / X86 / analysis-clustering-algorithms.test
blob00cb1054a691c74424cfe6865bb95e4ee2761470
1 # RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.5 -analysis-numpoints=1 -analysis-clustering=dbscan | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-DBSCAN-05 %s
2 # RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.49 -analysis-numpoints=1 -analysis-clustering=dbscan | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-DBSCAN-049 %s
3 # RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.5 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-NAIVE %s
4 # RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.49 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-NAIVE %s
6 # CHECK-CLUSTERS-ALL: {{^}}cluster_id,opcode_name,config,sched_class,inverse_throughput{{$}}
8 # By default with -analysis-clustering-epsilon=0.5 everything ends up in the
9 # same cluster, because each next point is a neighbour of the previous point.
11 # CHECK-CLUSTERS-DBSCAN-05-NEXT: {{^}}0,
12 # CHECK-CLUSTERS-DBSCAN-05-SAME: ,1.00{{$}}
13 # CHECK-CLUSTERS-DBSCAN-05-NEXT: {{^}}0,
14 # CHECK-CLUSTERS-DBSCAN-05-SAME: ,1.50{{$}}
15 # CHECK-CLUSTERS-DBSCAN-05-NEXT: {{^}}0,
16 # CHECK-CLUSTERS-DBSCAN-05-SAME: ,2.00{{$}}
17 # CHECK-CLUSTERS-DBSCAN-05-NEXT: {{^}}0,
18 # CHECK-CLUSTERS-DBSCAN-05-SAME: ,2.50{{$}}
20 # With -analysis-clustering-epsilon=0.49 every point goes into separate cluster.
22 # CHECK-CLUSTERS-DBSCAN-049-NEXT: {{^}}0,
23 # CHECK-CLUSTERS-DBSCAN-049-SAME: ,1.00{{$}}
24 # CHECK-CLUSTERS-DBSCAN-049: {{^}}1,
25 # CHECK-CLUSTERS-DBSCAN-049-SAME: ,1.50{{$}}
26 # CHECK-CLUSTERS-DBSCAN-049: {{^}}2,
27 # CHECK-CLUSTERS-DBSCAN-049-SAME: ,2.00{{$}}
28 # CHECK-CLUSTERS-DBSCAN-049: {{^}}3,
29 # CHECK-CLUSTERS-DBSCAN-049-SAME: ,2.50{{$}}
31 # And -analysis-clustering=naive every opcode goes into separate cluster.
33 # CHECK-CLUSTERS-NAIVE-049-NEXT: {{^}}0,
34 # CHECK-CLUSTERS-NAIVE-049-SAME: ,1.50{{$}}
35 # CHECK-CLUSTERS-NAIVE-049: {{^}}1,
36 # CHECK-CLUSTERS-NAIVE-049-SAME: ,2.00{{$}}
37 # CHECK-CLUSTERS-NAIVE-049: {{^}}2,
38 # CHECK-CLUSTERS-NAIVE-049-SAME: ,2.50{{$}}
39 # CHECK-CLUSTERS-NAIVE-049: {{^}}3,
40 # CHECK-CLUSTERS-NAIVE-049-SAME: ,1.00{{$}}
42 # The "value" is manually specified, not measured.
44 ---
45 mode:            inverse_throughput
46 key:
47   instructions:
48     - 'ROL8ri AH AH i_0x1'
49     - 'ROL8ri AL AL i_0x1'
50     - 'ROL8ri BH BH i_0x1'
51     - 'ROL8ri BL BL i_0x1'
52     - 'ROL8ri BPL BPL i_0x1'
53     - 'ROL8ri CH CH i_0x1'
54     - 'ROL8ri CL CL i_0x1'
55     - 'ROL8ri DH DH i_0x1'
56     - 'ROL8ri DIL DIL i_0x1'
57     - 'ROL8ri DL DL i_0x1'
58     - 'ROL8ri SIL SIL i_0x1'
59     - 'ROL8ri R8B R8B i_0x1'
60     - 'ROL8ri R9B R9B i_0x1'
61     - 'ROL8ri R10B R10B i_0x1'
62     - 'ROL8ri R11B R11B i_0x1'
63     - 'ROL8ri R12B R12B i_0x1'
64     - 'ROL8ri R13B R13B i_0x1'
65     - 'ROL8ri R14B R14B i_0x1'
66     - 'ROL8ri R15B R15B i_0x1'
67   config:          ''
68   register_initial_values:
69     - 'AH=0x0'
70     - 'AL=0x0'
71     - 'BH=0x0'
72     - 'BL=0x0'
73     - 'BPL=0x0'
74     - 'CH=0x0'
75     - 'CL=0x0'
76     - 'DH=0x0'
77     - 'DIL=0x0'
78     - 'DL=0x0'
79     - 'SIL=0x0'
80     - 'R8B=0x0'
81     - 'R9B=0x0'
82     - 'R10B=0x0'
83     - 'R11B=0x0'
84     - 'R12B=0x0'
85     - 'R13B=0x0'
86     - 'R14B=0x0'
87     - 'R15B=0x0'
88 cpu_name:        bdver2
89 llvm_triple:     x86_64-unknown-linux-gnu
90 num_repetitions: 1000000
91 measurements:
92   - { key: inverse_throughput, value: 1.0000, per_snippet_value: 30.4026 }
93 error:           ''
94 info:            instruction has tied variables, using static renaming.
95 assembled_snippet: 55415741564155415453B400B000B700B30040B500B500B100B60040B700B20040B60041B00041B10041B20041B30041B40041B50041B60041B700C0C401C0C001C0C701C0C30140C0C501C0C501C0C101C0C60140C0C701C0C20140C0C60141C0C00141C0C10141C0C20141C0C30141C0C40141C0C50141C0C60141C0C7015B415C415D415E415F5DC3
96 ...
97 ---
98 mode:            inverse_throughput
99 key:
100   instructions:
101     - 'ROL16ri AX AX i_0x1'
102     - 'ROL16ri BP BP i_0x1'
103     - 'ROL16ri BX BX i_0x1'
104     - 'ROL16ri CX CX i_0x1'
105     - 'ROL16ri DI DI i_0x1'
106     - 'ROL16ri DX DX i_0x1'
107     - 'ROL16ri SI SI i_0x1'
108     - 'ROL16ri R8W R8W i_0x1'
109     - 'ROL16ri R9W R9W i_0x1'
110     - 'ROL16ri R10W R10W i_0x1'
111     - 'ROL16ri R11W R11W i_0x1'
112     - 'ROL16ri R12W R12W i_0x1'
113     - 'ROL16ri R13W R13W i_0x1'
114     - 'ROL16ri R14W R14W i_0x1'
115     - 'ROL16ri R15W R15W i_0x1'
116   config:          ''
117   register_initial_values:
118     - 'AX=0x0'
119     - 'BP=0x0'
120     - 'BX=0x0'
121     - 'CX=0x0'
122     - 'DI=0x0'
123     - 'DX=0x0'
124     - 'SI=0x0'
125     - 'R8W=0x0'
126     - 'R9W=0x0'
127     - 'R10W=0x0'
128     - 'R11W=0x0'
129     - 'R12W=0x0'
130     - 'R13W=0x0'
131     - 'R14W=0x0'
132     - 'R15W=0x0'
133 cpu_name:        bdver2
134 llvm_triple:     x86_64-unknown-linux-gnu
135 num_repetitions: 1000000
136 measurements:
137   - { key: inverse_throughput, value: 1.5000, per_snippet_value: 30.154 }
138 error:           ''
139 info:            instruction has tied variables, using static renaming.
140 assembled_snippet: 5541574156415541545366B8000066BD000066BB000066B9000066BF000066BA000066BE00006641B800006641B900006641BA00006641BB00006641BC00006641BD00006641BE00006641BF000066C1C00166C1C50166C1C30166C1C10166C1C70166C1C20166C1C6016641C1C0016641C1C1016641C1C2016641C1C3016641C1C4016641C1C5016641C1C6016641C1C70166C1C0015B415C415D415E415F5DC3
143 mode:            inverse_throughput
144 key:
145   instructions:
146     - 'ROL32ri EAX EAX i_0x1'
147     - 'ROL32ri EBP EBP i_0x1'
148     - 'ROL32ri EBX EBX i_0x1'
149     - 'ROL32ri ECX ECX i_0x1'
150     - 'ROL32ri EDI EDI i_0x1'
151     - 'ROL32ri EDX EDX i_0x1'
152     - 'ROL32ri ESI ESI i_0x1'
153     - 'ROL32ri R8D R8D i_0x1'
154     - 'ROL32ri R9D R9D i_0x1'
155     - 'ROL32ri R10D R10D i_0x1'
156     - 'ROL32ri R11D R11D i_0x1'
157     - 'ROL32ri R12D R12D i_0x1'
158     - 'ROL32ri R13D R13D i_0x1'
159     - 'ROL32ri R14D R14D i_0x1'
160     - 'ROL32ri R15D R15D i_0x1'
161   config:          ''
162   register_initial_values:
163     - 'EAX=0x0'
164     - 'EBP=0x0'
165     - 'EBX=0x0'
166     - 'ECX=0x0'
167     - 'EDI=0x0'
168     - 'EDX=0x0'
169     - 'ESI=0x0'
170     - 'R8D=0x0'
171     - 'R9D=0x0'
172     - 'R10D=0x0'
173     - 'R11D=0x0'
174     - 'R12D=0x0'
175     - 'R13D=0x0'
176     - 'R14D=0x0'
177     - 'R15D=0x0'
178 cpu_name:        bdver2
179 llvm_triple:     x86_64-unknown-linux-gnu
180 num_repetitions: 1000000
181 measurements:
182   - { key: inverse_throughput, value: 2.0000, per_snippet_value: 23.2762 }
183 error:           ''
184 info:            instruction has tied variables, using static renaming.
185 assembled_snippet: 55415741564155415453B800000000BD00000000BB00000000B900000000BF00000000BA00000000BE0000000041B80000000041B90000000041BA0000000041BB0000000041BC0000000041BD0000000041BE0000000041BF00000000C1C001C1C501C1C301C1C101C1C701C1C201C1C60141C1C00141C1C10141C1C20141C1C30141C1C40141C1C50141C1C60141C1C701C1C0015B415C415D415E415F5DC3
188 mode:            inverse_throughput
189 key:
190   instructions:
191     - 'ROL64ri RAX RAX i_0x1'
192     - 'ROL64ri RBP RBP i_0x1'
193     - 'ROL64ri RBX RBX i_0x1'
194     - 'ROL64ri RCX RCX i_0x1'
195     - 'ROL64ri RDI RDI i_0x1'
196     - 'ROL64ri RDX RDX i_0x1'
197     - 'ROL64ri RSI RSI i_0x1'
198     - 'ROL64ri R8 R8 i_0x1'
199     - 'ROL64ri R9 R9 i_0x1'
200     - 'ROL64ri R10 R10 i_0x1'
201     - 'ROL64ri R11 R11 i_0x1'
202     - 'ROL64ri R12 R12 i_0x1'
203     - 'ROL64ri R13 R13 i_0x1'
204     - 'ROL64ri R14 R14 i_0x1'
205     - 'ROL64ri R15 R15 i_0x1'
206   config:          ''
207   register_initial_values:
208     - 'RAX=0x0'
209     - 'RBP=0x0'
210     - 'RBX=0x0'
211     - 'RCX=0x0'
212     - 'RDI=0x0'
213     - 'RDX=0x0'
214     - 'RSI=0x0'
215     - 'R8=0x0'
216     - 'R9=0x0'
217     - 'R10=0x0'
218     - 'R11=0x0'
219     - 'R12=0x0'
220     - 'R13=0x0'
221     - 'R14=0x0'
222     - 'R15=0x0'
223 cpu_name:        bdver2
224 llvm_triple:     x86_64-unknown-linux-gnu
225 num_repetitions: 1000000
226 measurements:
227   - { key: inverse_throughput, value: 2.5000, per_snippet_value: 26.2268 }
228 error:           ''
229 info:            instruction has tied variables, using static renaming.
230 assembled_snippet: 5541574156415541545348B8000000000000000048BD000000000000000048BB000000000000000048B9000000000000000048BF000000000000000048BA000000000000000048BE000000000000000049B8000000000000000049B9000000000000000049BA000000000000000049BB000000000000000049BC000000000000000049BD000000000000000049BE000000000000000049BF000000000000000048C1C00148C1C50148C1C30148C1C10148C1C70148C1C20148C1C60149C1C00149C1C10149C1C20149C1C30149C1C40149C1C50149C1C60149C1C70148C1C0015B415C415D415E415F5DC3