1*c2423fe6SRoman Lebedev# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=10 -analysis-numpoints=1 | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-DBSCAN %s
2*c2423fe6SRoman Lebedev# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=10 -analysis-numpoints=1 -analysis-clustering=dbscan | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-DBSCAN %s
3*c2423fe6SRoman Lebedev# RUN: llvm-exegesis -mode=analysis -benchmarks-file=%s -analysis-clusters-output-file=- -analysis-clustering-epsilon=10 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-CLUSTERS-ALL,CHECK-CLUSTERS-NAIVE %s
4*c2423fe6SRoman Lebedev
5*c2423fe6SRoman Lebedev# Normally BSR32rr is in WriteBSR and BSF32rr is in WriteBSF sched classes.
6*c2423fe6SRoman Lebedev# Here we check that if we have dbscan-clustered these two measurements into the
7*c2423fe6SRoman Lebedev# same cluster, we don't split it per the sched classes into two.
8*c2423fe6SRoman Lebedev
9*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-ALL: {{^}}cluster_id,opcode_name,config,sched_class,inverse_throughput{{$}}
10*c2423fe6SRoman Lebedev
11*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-DBSCAN-NEXT: {{^}}0,
12*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-DBSCAN-SAME: ,4.03{{$}}
13*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-DBSCAN-NEXT: {{^}}0,
14*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-DBSCAN-SAME: ,3.02{{$}}
15*c2423fe6SRoman Lebedev
16*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-NAIVE-NEXT: {{^}}0,
17*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-NAIVE-SAME: ,3.02{{$}}
18*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-NAIVE: {{^}}1,
19*c2423fe6SRoman Lebedev# CHECK-CLUSTERS-NAIVE-SAME: ,4.03{{$}}
20*c2423fe6SRoman Lebedev
21*c2423fe6SRoman Lebedev---
22*c2423fe6SRoman Lebedevmode:            inverse_throughput
23*c2423fe6SRoman Lebedevkey:
24*c2423fe6SRoman Lebedev  instructions:
25*c2423fe6SRoman Lebedev    - 'BSR32rr R11D EDI'
26*c2423fe6SRoman Lebedev  config:          ''
27*c2423fe6SRoman Lebedev  register_initial_values:
28*c2423fe6SRoman Lebedev    - 'EDI=0x0'
29*c2423fe6SRoman Lebedevcpu_name:        bdver2
30*c2423fe6SRoman Lebedevllvm_triple:     x86_64-unknown-linux-gnu
31*c2423fe6SRoman Lebedevnum_repetitions: 1000000
32*c2423fe6SRoman Lebedevmeasurements:
33*c2423fe6SRoman Lebedev  - { key: inverse_throughput, value: 4.03048, per_snippet_value: 4.03048 }
34*c2423fe6SRoman Lebedeverror:           ''
35*c2423fe6SRoman Lebedevinfo:            instruction has no tied variables picking Uses different from defs
36*c2423fe6SRoman Lebedevassembled_snippet: BF00000000440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDF440FBDDFC3
37*c2423fe6SRoman Lebedev...
38*c2423fe6SRoman Lebedev---
39*c2423fe6SRoman Lebedevmode:            inverse_throughput
40*c2423fe6SRoman Lebedevkey:
41*c2423fe6SRoman Lebedev  instructions:
42*c2423fe6SRoman Lebedev    - 'BSF32rr EAX R14D'
43*c2423fe6SRoman Lebedev  config:          ''
44*c2423fe6SRoman Lebedev  register_initial_values:
45*c2423fe6SRoman Lebedev    - 'R14D=0x0'
46*c2423fe6SRoman Lebedevcpu_name:        bdver2
47*c2423fe6SRoman Lebedevllvm_triple:     x86_64-unknown-linux-gnu
48*c2423fe6SRoman Lebedevnum_repetitions: 1000000
49*c2423fe6SRoman Lebedevmeasurements:
50*c2423fe6SRoman Lebedev  - { key: inverse_throughput, value: 3.02186, per_snippet_value: 3.02186 }
51*c2423fe6SRoman Lebedeverror:           ''
52*c2423fe6SRoman Lebedevinfo:            instruction has no tied variables picking Uses different from defs
53*c2423fe6SRoman Lebedevassembled_snippet: 415641BE00000000410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6410FBCC6415EC3
54*c2423fe6SRoman Lebedev...
55