## Test the double jump removal peephole. RUN: %clangxx %cxxflags %p/Inputs/double_jump.cpp -o %t.exe RUN: llvm-bolt %t.exe --peepholes=double-jumps \ RUN: --eliminate-unreachable -o %t | FileCheck --check-prefix CHECK-BOLT %s RUN: llvm-objdump -d %t --print-imm-hex --no-show-raw-insn | FileCheck %s CHECK-BOLT: BOLT-INFO: Peephole: 1 double jumps patched. CHECK: <_Z3foom>: CHECK-NEXT: pushq %rbp CHECK-NEXT: movq %rsp, %rbp CHECK-NEXT: movq %rdi, -0x8(%rbp) CHECK-NEXT: cmpq $0x1, -0x8(%rbp) CHECK-NEXT: je {{.*}} <_Z3foom+0x2c> CHECK-NEXT: incq -0x8(%rbp) CHECK-NEXT: incq -0x8(%rbp) CHECK-NEXT: cmpq $0x2, -0x8(%rbp) CHECK-NEXT: je {{.*}} <_Z3foom+0x22> CHECK-NEXT: incq -0x8(%rbp) CHECK-NEXT: movq -0x8(%rbp), %rdi CHECK-NEXT: popq %rbp CHECK-NEXT: jmp {{.*}} CHECK-NEXT: popq %rbp CHECK-NEXT: incq -0x8(%rbp) CHECK-NEXT: jmp {{.*}}