xref: /llvm-project/llvm/test/tools/llvm-exegesis/X86/latency/segment-registers-subprocess.asm (revision 5cc74029168dda258ec53ca7473df814db99960e)
1# REQUIRES: exegesis-can-measure-latency, x86_64-linux
2
3# Check that the value of the segment registers is set properly when in
4# subprocess mode.
5
6# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mode=latency -snippets-file=%s -execution-mode=subprocess | FileCheck %s
7
8# LLVM-EXEGESIS-DEFREG FS 12345600
9# LLVM-EXEGESIS-DEFREG GS 2468ac00
10# LLVM-EXEGESIS-DEFREG R13 0
11# LLVM-EXEGESIS-DEFREG R14 127
12# LLVM-EXEGESIS-DEFREG R15 0
13# LLVM-EXEGESIS-MEM-DEF MEM1 4096 0000000012345600
14# LLVM-EXEGESIS-MEM-DEF MEM2 4096 000000002468ac00
15# LLVM-EXEGESIS-MEM-MAP MEM1 305418240
16# LLVM-EXEGESIS-MEM-MAP MEM2 610836480
17
18movq %fs:0, %r13
19cmpq $0x12345600, %r13
20cmovneq %r14, %r15
21movq %gs:0, %r13
22cmpq $0x2468ac00, %r13
23cmovneq %r14, %r15
24
25movq $60, %rax
26movq %r15, %rdi
27syscall
28
29# CHECK-NOT: error:           'Child benchmarking process exited with non-zero exit code: Child process returned with unknown exit code'
30