# REQUIRES: exegesis-can-measure-latency, x86_64-linux
# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mode=latency -snippets-file=%s -execution-mode=subprocess | FileCheck %s
# Check that the code is loaded in at the expected address.
# LLVM-EXEGESIS-SNIPPET-ADDRESS 20000
# LLVM-EXEGESIS-DEFREG RAX 0
# LLVM-EXEGESIS-DEFREG R14 127
# LLVM-EXEGESIS-DEFREG R15 0
# LLVM-EXEGESIS-DEFREG RDI 0
# Load the instruction pointer and round down to the nearest page as there
# will be some setup code loaded in before this part begins to execute.
lea 0(%rip), %rax
shrq $12, %rax
shlq $12, %rax
cmpq $0x20000, %rax
cmovneq %r14, %r15
movq $60, %rax
movq %r15, %rdi
syscall
# CHECK-NOT: error: 'Child benchmarking process exited with non-zero exit code: Child process returned with unknown exit code'