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