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