1 # RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=call+jmp+indirect+ret+jcc %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
3 # These tests are checking the basic cases for each instructions, and a
4 # bit of the alignment checking logic itself. Fused instruction cases are
5 # excluded, as are details of argument parsing.
7 # instruction sizes for reference:
8 # callq is 5 bytes long
10 # jmp <near-label> is 2 bytes
11 # jmp <far-label> is 5 bytes
14 # Next couple tests are checking the edge cases on the alignment computation
47 # next couple check instruction type coverage
69 # check a case with a relaxable instruction
71 # CHECK: <test_jmp_far>:
91 # CHECK: <test_indirect>:
106 # This case looks really tempting to pad, but doing so for the call causes
107 # the jmp to be misaligned.
108 # CHECK: <test_pad_via_relax_neg1>:
114 .global test_pad_via_relax_neg1
116 test_pad_via_relax_neg1
:
124 # Same as previous, but without fusion
125 # CHECK: <test_pad_via_relax_neg2>:
130 .global test_pad_via_relax_neg2
132 test_pad_via_relax_neg2
: