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.
45 mode: inverse_throughput
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'
68 register_initial_values:
89 llvm_triple: x86_64-unknown-linux-gnu
90 num_repetitions: 1000000
92 - { key: inverse_throughput, value: 1.0000, per_snippet_value: 30.4026 }
94 info: instruction has tied variables, using static renaming.
95 assembled_snippet: 55415741564155415453B400B000B700B30040B500B500B100B60040B700B20040B60041B00041B10041B20041B30041B40041B50041B60041B700C0C401C0C001C0C701C0C30140C0C501C0C501C0C101C0C60140C0C701C0C20140C0C60141C0C00141C0C10141C0C20141C0C30141C0C40141C0C50141C0C60141C0C7015B415C415D415E415F5DC3
98 mode: inverse_throughput
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'
117 register_initial_values:
134 llvm_triple: x86_64-unknown-linux-gnu
135 num_repetitions: 1000000
137 - { key: inverse_throughput, value: 1.5000, per_snippet_value: 30.154 }
139 info: instruction has tied variables, using static renaming.
140 assembled_snippet: 5541574156415541545366B8000066BD000066BB000066B9000066BF000066BA000066BE00006641B800006641B900006641BA00006641BB00006641BC00006641BD00006641BE00006641BF000066C1C00166C1C50166C1C30166C1C10166C1C70166C1C20166C1C6016641C1C0016641C1C1016641C1C2016641C1C3016641C1C4016641C1C5016641C1C6016641C1C70166C1C0015B415C415D415E415F5DC3
143 mode: inverse_throughput
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'
162 register_initial_values:
179 llvm_triple: x86_64-unknown-linux-gnu
180 num_repetitions: 1000000
182 - { key: inverse_throughput, value: 2.0000, per_snippet_value: 23.2762 }
184 info: instruction has tied variables, using static renaming.
185 assembled_snippet: 55415741564155415453B800000000BD00000000BB00000000B900000000BF00000000BA00000000BE0000000041B80000000041B90000000041BA0000000041BB0000000041BC0000000041BD0000000041BE0000000041BF00000000C1C001C1C501C1C301C1C101C1C701C1C201C1C60141C1C00141C1C10141C1C20141C1C30141C1C40141C1C50141C1C60141C1C701C1C0015B415C415D415E415F5DC3
188 mode: inverse_throughput
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'
207 register_initial_values:
224 llvm_triple: x86_64-unknown-linux-gnu
225 num_repetitions: 1000000
227 - { key: inverse_throughput, value: 2.5000, per_snippet_value: 26.2268 }
229 info: instruction has tied variables, using static renaming.
230 assembled_snippet: 5541574156415541545348B8000000000000000048BD000000000000000048BB000000000000000048B9000000000000000048BF000000000000000048BA000000000000000048BE000000000000000049B8000000000000000049B9000000000000000049BA000000000000000049BB000000000000000049BC000000000000000049BD000000000000000049BE000000000000000049BF000000000000000048C1C00148C1C50148C1C30148C1C10148C1C70148C1C20148C1C60149C1C00149C1C10149C1C20149C1C30149C1C40149C1C50149C1C60149C1C70148C1C0015B415C415D415E415F5DC3