1# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \ 2# RUN: | llvm-objdump -disassemble - | FileCheck %s 3 4# Test that instructions inside bundle-locked groups are relaxed even if their 5# fixup is short enough not to warrant relaxation on its own. 6 7 .text 8foo: 9 .bundle_align_mode 4 10 pushq %rbp 11 12 movl %edi, %ebx 13 callq bar 14 movl %eax, %r14d 15 imull $17, %ebx, %ebp 16 movl %ebx, %edi 17 callq bar 18 cmpl %r14d, %ebp 19 .bundle_lock 20 21 jle .L_ELSE 22# This group would've started at 0x18 and is too long, so a chunky NOP padding 23# is inserted to push it to 0x20. 24# CHECK: 18: {{[a-f0-9 ]+}} nopl 25 26# The long encoding for JLE should be used here even though its target is close 27# CHECK-NEXT: 20: 0f 8e 28 29 addl %ebp, %eax 30 31 jmp .L_RET 32# Same for the JMP 33# CHECK: 28: e9 34 35 .bundle_unlock 36 37.L_ELSE: 38 imull %ebx, %eax 39.L_RET: 40 41 popq %rbx 42 43