[llvm-shlib] Fix the version naming style of libLLVM for Windows (#85710)
[llvm-project.git] / bolt / test / X86 / double-jump.test
blobcbd5ce9dae0e5b97a08c51f507e613a8cfe7e840
1 # Test the double jump removal peephole.
3 # This test has commands that rely on shell capabilities that won't execute
4 # correctly on Windows e.g. subshell execution
5 REQUIRES: shell
7 RUN: %clang %cflags %p/Inputs/double_jump.cpp -o %t.exe
8 RUN: (llvm-bolt %t.exe --peepholes=double-jumps \
9 RUN:   --eliminate-unreachable -o %t 2>&1 \
10 RUN:   && llvm-objdump -d %t --print-imm-hex --no-show-raw-insn) | FileCheck %s
12 CHECK: BOLT-INFO: Peephole: 1 double jumps patched.
14 CHECK: <_Z3foom>:
15 CHECK-NEXT: pushq %rbp
16 CHECK-NEXT: movq  %rsp, %rbp
17 CHECK-NEXT: movq  %rdi, -0x8(%rbp)
18 CHECK-NEXT: cmpq  $0x1, -0x8(%rbp)
19 CHECK-NEXT: je    {{.*}} <_Z3foom+0x2c>
20 CHECK-NEXT: incq  -0x8(%rbp)
21 CHECK-NEXT: incq  -0x8(%rbp)
22 CHECK-NEXT: cmpq  $0x2, -0x8(%rbp)
23 CHECK-NEXT: je    {{.*}} <_Z3foom+0x22>
24 CHECK-NEXT: incq  -0x8(%rbp)
25 CHECK-NEXT: movq  -0x8(%rbp), %rdi
26 CHECK-NEXT: popq  %rbp
27 CHECK-NEXT: jmp   {{.*}} <bar>
28 CHECK-NEXT: popq  %rbp
29 CHECK-NEXT: incq  -0x8(%rbp)
30 CHECK-NEXT: jmp   {{.*}} <bar>