# RUN: llvm-mc -triple=i686-linux -filetype=obj %s -o - | \
# RUN: llvm-objdump -d --no-show-raw-insn -r - | FileCheck %s
# RUN: llvm-mc -triple=i686-nacl -filetype=obj %s -o - | \
# RUN: llvm-objdump -d --no-show-raw-insn -r - | FileCheck %s
# RUN: llvm-mc -triple=i686-nacl -filetype=obj -mc-relax-all %s -o - | \
# RUN: llvm-objdump -d --no-show-raw-insn -r - | FileCheck %s

        .bundle_align_mode 5
        .text
        .globl  main
        .align  32, 0x90
        .type   main,@function
main:                                   # @main
# CHECK-LABEL: <main>:
# Call + pop sequence for determining the PIC base.
        .bundle_lock align_to_end
        calll   .L0$pb
        .bundle_unlock
.L0$pb:
        popl    %eax
# CHECK: 20: popl
# 26 bytes of instructions between the pop and the use of the pic base symbol.
        movl    $3, 2(%ebx, %ebx)
        movl    $3, 2(%ebx, %ebx)
        movl    $3, 2(%ebx, %ebx)
        hlt
        hlt
# CHECK: nop
.Ltmp0:
        addl    (.Ltmp0-.L0$pb), %eax
# The addl has bundle padding to push it from 0x3b to 0x40.
# The difference between the labels should be 0x20 (0x40-0x20) not 0x1b
# (0x3b-0x20)
# CHECK: 40: addl 32, %eax
        popl    %ecx
        jmp     *%ecx


# Also make sure it works with a non-relaxable instruction (cmp vs add)
# and for 2 adjacent labels that both point to the correct instruction
        .section .text.bar, "ax"
        .globl  bar
        .align  32, 0x90
        .type   bar,@function
bar:
# CHECK-LABEL: bar:
        .bundle_lock align_to_end
        calll   .L1$pb
        .bundle_unlock
.L1$pb:
        popl %eax
# CHECK: 20: popl
# 26 bytes of instructions between the pop and the use of the pic base symbol.
        movl    $3, 2(%ebx, %ebx)
        movl    $3, 2(%ebx, %ebx)
        movl    $3, 2(%ebx, %ebx)
        hlt
        hlt
# CHECK: nop
.Ltmp1:
.Ltmp2:
        cmpl    %eax, .Ltmp1
# CHECK: 40: cmpl %eax, 64
        cmpl     %eax, (.Ltmp2-.L1$pb)
# CHECK: 46: cmpl %eax, 32
        popl    %ecx
        jmp *%ecx


# Switch sections in the middle of a function
        .section .text.foo, "ax"
        .globl  foo
        .align  32, 0x90
        .type   foo,@function
# CHECK-LABEL: foo:
foo:
        inc %eax
tmp3:
        .rodata
        .type   obj,@object
        .comm   obj,4,4
        .section .text.foo
        inc %eax
# CHECK: <tmp3>:
# CHECK-NEXT: 1: incl
