blob: b24d8fa937468d089b56e57be483df77b57d2dc5 [file] [log] [blame]
# Test that 64 bit movq instructions with immediate operands
# that fit in 32 bits are shortened.
RUN: %clang %p/Inputs/asm_main.c %p/Inputs/shorten_mov.s -o %t.exe
RUN: llvm-bolt %t.exe -o %t
RUN: llvm-objdump -d %t --print-imm-hex | FileCheck %s
CHECK: <foo>:
CHECK-NEXT: 48 c7 c0 11 11 00 00 movq $0x1111, %rax
CHECK-NEXT: 48 c7 c0 11 11 00 00 movq $0x1111, %rax
CHECK-NEXT: 48 c7 c0 22 22 11 11 movq $0x11112222, %rax
CHECK-NEXT: 48 b8 22 22 11 11 01 00 00 00 movabsq $0x111112222, %rax
CHECK-NEXT: 48 c7 c0 ff ff ff ff movq $-0x1, %rax
CHECK-NEXT: 48 b8 ff ff ff ff ff ff ff 7f movabsq $0x7fffffffffffffff, %rax