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