xref: /llvm-project/llvm/test/tools/llvm-exegesis/X86/latency/latency-LEA64_32r.s (revision e0ad2af6916a6c743e8ff19489818381e697d4ee)
1# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=duplicate -max-configs-per-opcode=2 | FileCheck %s
2# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=duplicate -max-configs-per-opcode=2 | FileCheck --check-prefix CHECK-COUNTS %s
3
4# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=loop -max-configs-per-opcode=2 | FileCheck %s
5# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=loop -max-configs-per-opcode=2 | FileCheck --check-prefix CHECK-COUNTS %s
6
7## Intentionally run llvm-exegesis twice per output!
8# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=duplicate -max-configs-per-opcode=2 --benchmarks-file=%t.duplicate.yaml
9# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=duplicate -max-configs-per-opcode=2 --benchmarks-file=%t.duplicate.yaml
10# RUN: FileCheck --input-file %t.duplicate.yaml %s
11# RUN: FileCheck --input-file %t.duplicate.yaml --check-prefix CHECK-COUNTS %s
12# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=loop -max-configs-per-opcode=2 --benchmarks-file=%t.loop.yaml
13# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --benchmark-phase=assemble-measured-code -opcode-name=LEA64_32r -repetition-mode=loop -max-configs-per-opcode=2 --benchmarks-file=%t.loop.yaml
14# RUN: FileCheck --input-file %t.loop.yaml %s
15# RUN: FileCheck --input-file %t.loop.yaml --check-prefix CHECK-COUNTS %s
16
17
18CHECK:      ---
19CHECK-NEXT: mode: latency
20CHECK-NEXT: key:
21CHECK-NEXT:   instructions:
22CHECK-NEXT:     LEA64_32r
23CHECK-NEXT: config: '0(%[[REG1:[A-Z0-9]+]], %[[REG1]], 1)'
24
25CHECK:      ---
26CHECK-NEXT: mode: latency
27CHECK-NEXT: key:
28CHECK-NEXT:   instructions:
29CHECK-NEXT:     LEA64_32r
30CHECK-NEXT: config: '42(%[[REG2:[A-Z0-9]+]], %[[REG2]], 1)'
31
32## Check that we empty our output file once per llvm-exegesis run.
33## But not once per benchmark.
34CHECK-COUNTS-COUNT-2: mode: latency
35