1# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.1 -analysis-inconsistency-epsilon=0.1 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-CLUSTERS %s
2# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-inconsistencies-output-file=- -analysis-clustering-epsilon=0.5 -analysis-inconsistency-epsilon=0.5 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-INCONSISTENCIES-ALL,CHECK-INCONSISTENCIES-STABLE %s
3# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-inconsistencies-output-file=- -analysis-clustering-epsilon=0.5 -analysis-inconsistency-epsilon=0.5 -analysis-display-unstable-clusters -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-INCONSISTENCIES-ALL,CHECK-INCONSISTENCIES-UNSTABLE %s
4
5# We have two ADD32rr measurements, and two measurements for SQRTSSr.
6# ADD32rr measurements are neighbours.
7# But the measurements of SQRTSSr are not neighbours,
8# so therefore that cluster is marked as unstable.
9
10# By default, we do not show such unstable clusters.
11# If told to show, we *only* show such unstable clusters.
12
13# CHECK-CLUSTERS: {{^}}cluster_id,opcode_name,config,sched_class,latency{{$}}
14# CHECK-CLUSTERS-NEXT: {{^}}0,
15# CHECK-CLUSTERS-SAME: ,90.00{{$}}
16# CHECK-CLUSTERS-NEXT: {{^}}0,
17# CHECK-CLUSTERS-SAME: ,90.11{{$}}
18# CHECK-CLUSTERS: {{^}}1,
19# CHECK-CLUSTERS-SAME: ,90.11{{$}}
20# CHECK-CLUSTERS-NEXT: {{^}}1,
21# CHECK-CLUSTERS-SAME: ,100.00{{$}}
22
23# CHECK-INCONSISTENCIES-STABLE: ADD32rr
24# CHECK-INCONSISTENCIES-STABLE: ADD32rr
25# CHECK-INCONSISTENCIES-STABLE-NOT: ADD32rr
26# CHECK-INCONSISTENCIES-STABLE-NOT: SQRTSSr
27
28# CHECK-INCONSISTENCIES-UNSTABLE: SQRTSSr
29# CHECK-INCONSISTENCIES-UNSTABLE: SQRTSSr
30# CHECK-INCONSISTENCIES-UNSTABLE-NOT: SQRTSSr
31# CHECK-INCONSISTENCIES-UNSTABLE-NOT: ADD32rr
32
33---
34mode:            latency
35key:
36  instructions:
37    - 'ADD32rr EDX EDX EAX'
38  config:          ''
39  register_initial_values:
40    - 'EDX=0x0'
41    - 'EAX=0x0'
42cpu_name:        bdver2
43llvm_triple:     x86_64-unknown-linux-gnu
44num_repetitions: 10000
45measurements:
46  - { key: latency, value: 90.0000, per_snippet_value: 90.0000 }
47error:           ''
48info:            Repeating a single implicitly serial instruction
49assembled_snippet: BA00000000B80000000001C201C201C201C201C201C201C201C201C201C201C201C201C201C201C201C2C3
50---
51mode:            latency
52key:
53  instructions:
54    - 'ADD32rr EDX EDX EAX'
55  config:          ''
56  register_initial_values:
57    - 'EDX=0x0'
58    - 'EAX=0x0'
59cpu_name:        bdver2
60llvm_triple:     x86_64-unknown-linux-gnu
61num_repetitions: 10000
62measurements:
63  - { key: latency, value: 90.1100, per_snippet_value: 90.1100 }
64error:           ''
65info:            Repeating a single implicitly serial instruction
66assembled_snippet: BA00000000B80000000001C201C201C201C201C201C201C201C201C201C201C201C201C201C201C201C2C3
67---
68mode:            latency
69key:
70  instructions:
71    - 'SQRTSSr XMM11 XMM11'
72  config:          ''
73  register_initial_values:
74    - 'XMM11=0x0'
75cpu_name:        bdver2
76llvm_triple:     x86_64-unknown-linux-gnu
77num_repetitions: 10000
78measurements:
79  - { key: latency, value: 90.1111, per_snippet_value: 90.1111 }
80error:           ''
81info:            Repeating a single explicitly serial instruction
82assembled_snippet: 4883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C57A6F1C244883C410F3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBC3
83...
84---
85mode:            latency
86key:
87  instructions:
88    - 'SQRTSSr XMM11 XMM11'
89  config:          ''
90  register_initial_values:
91    - 'XMM11=0x0'
92cpu_name:        bdver2
93llvm_triple:     x86_64-unknown-linux-gnu
94num_repetitions: 10000
95measurements:
96  - { key: latency, value: 100, per_snippet_value: 100 }
97error:           ''
98info:            Repeating a single explicitly serial instruction
99assembled_snippet: 4883EC10C7042400000000C744240400000000C744240800000000C744240C00000000C57A6F1C244883C410F3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBF3450F51DBC3
100...
101